Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

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.

Project details

Release history Release notifications

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
impermagit-1.0.0.tar.gz (6.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page