Так же существует реализация Git на чистом Python — Dulwich. Проект размещается здесь hhttps://github.com/jelmer/dulwich[^]. Целью проекта является предоставление интерфейса к Git репозиториям (как локальным, так и удалённым) используя чистый Python, а не вызывая Git. В нём используются дополнительные расширения на С, которые существенно увеличивают производительность.
Dulwich следует дизайну Git и разделяет API на два уровня: сантехника и фарфор.
Например, так выглядит использование низкоуровневого API для получения сообщения последнего коммита:
from dulwich.repo import Repo
r = Repo('.')
r.head()
# '57fbe010446356833a6ad1600059d80b1e731e15'
c = r[r.head()]
c
# <Commit 015fc1267258458901a94d228e39f0a378370466>
c.message
# 'Add note about encoding.\n'
Чтобы вывести лог коммита используя высокоуровневый фарфоровый API, можно использовать:
from dulwich import porcelain
porcelain.log('.', max_entries=1)
#commit: 57fbe010446356833a6ad1600059d80b1e731e15
#Author: Jelmer Vernooij <[email protected]>
#Date: Sat Apr 29 2017 23:57:34 +0000
Документацию к API, руководство и множество примеров решения специфичных задач с помощью Dulwich можно найти на странице проекта https://github.com/jelmer/dulwich.