Skip to main content

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):
        print out.read()
        print err.read()

 # 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


Download files

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

Source Distribution

impermagit-1.0.0.tar.gz (6.9 kB view details)

Uploaded Source

File details

Details for the file impermagit-1.0.0.tar.gz.

File metadata

  • Download URL: impermagit-1.0.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for impermagit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 70558f150c2e3cd92bf65f9cb1dedf2a9c6bc1599a8cbf1c17d56ed009bafb36
MD5 aba8280b9e03bf7ac51a50f5bad2f0b8
BLAKE2b-256 b966afe652c2deceef84b2937e45c3ab6bef8baed475b37e0a7263b505b148e0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page