Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Create temporary git repos in python.

Project Description

Impermagit makes it easier to test python programs that use / integrate with git. For example:

from impermagit import fleeting_repo

with fleeting_repo() as repo:
    # there is not a git repo created in a temporary dir
    # somewhere, allowing you to do things like:

    # add some files with some contents and commit them
    repo.commit([('test.txt', 'test contents\n'),
                 ('subdir/test2.txt', 'other contents\n')])

    # update contents
    repo.commit([('test.txt', 'new test contents\n')])

    # git rm files by passing None as contents
    repo.commit([('subdir/test.txt', None)])

    # run arbitrary git cmds in the repo when you don't care
    # about the output (will raise a GitExeException if it
    # fails)
    repo.do_git(["rm", "some-other-file.txt"])

    # run arbitrary git cmds in the repo and get back
    # stdout / stderr.
    with repo.yield_git(["log"]) as (out, err):

 # and here, the repo is gone and the temporary dir deleted.

You can also create a Repo object directly, if you’d prefer to control the lifecycle more closely:

from imperagit import Repo

repo = Repo('/some/dir/you/manage')

By default, Imperagit uses “/usr/bin/env git” as the git executable, but this can be overridden with the git_exe arg to both fleeting_repo and Repo.

You can see more detailed docs with the interactive help:

>>> import impermagit
>>> help(impermagit)

Impermagit requires Python 2.6+, and has not been tested with Python 3.

Release History

This version
History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(6.9 kB) Copy SHA256 Hash SHA256
Source Apr 25, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting