Skip to main content

manage files with git, without checking their contents into git

Project description

Python wheel package for git-annex

Test git-annex wheel from PyPi

Why?

Git-annex is written in Haskell and plenty of installation methods are available. However, for deploying git-annex as a dependency of a Python library/application, like DataLad or AnnexRemote, system packages are a lot less flexible than Python's virtual environments, and other methods are more complex and fragile.

With git-annex being available from PyPi, versioned dependencies and deployment in application-specific environments are possible via standard means of Python packaging.

Caveats

A standard git-annex deployment is (primarily) a single binary (git-annex), and a bunch of symlinks that make this one binary fulfilled multiple roles (git-annex-shell, git-remote-annex, etc.). A Python wheel, however, is a ZIP file container with no support for symlinks, and also no support for "post-install" scripts.

In order to square this circle, the git-annex binary is wrapped via regular Python entrypoint scripts that handle calling git-annex as necessary. This delivers a cross-platform compatible wheel, but at a start-up cost (~30ms vs ~11ms on my laptop).

Installation

Get the package from PyPi, and install like any other package from PyPi.

uv users can deploy git-annex in a dedicated virtual environment via the one-liner:

uv tool install git-annex

git-annex build configuration

Git-annex is built with libmagic support.

Platform notes

Linux

The manylinux wheel is self-contained and includes copies of all libraries. It only depends on the declared GLIBC versions. The magic.mgc database is not included, and is assumed to be available on the target system. Install it separately, if needed (e.g., libmagic-mgc package).

Windows

The wheel is self-contained and includes a copy of libmagic and the magic.mgc database.

Mac

The wheel is self-contained and includes a copy of libmagic and the magic.mgc database.

Developer information

Sources

The sources for this package are available at https://github.com/psychoinformatics-de/git-annex-wheel

The repository tracks the git-annex sources as a Git submodule.

Issues

For issues related to the Python wheel packaging of git-annex, please use the tracker at https://github.com/psychoinformatics-de/git-annex-wheel/issues

How to update for a new git-annex release?

Advance the submodule ./git-annex to the new release tag.

Now adjust the package version in pyproject.toml accordingly. This version must follow the rules for Python packages.

The included (GitHub) action workflows will build a corresponding wheel and upload it to PyPi.

Acknowledgements

This work was funded, in part, by

  • Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant TRR 379 (546006540, Q02 project)
  • Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant SFB 1451 (431549029, INF project)
  • MKW-NRW: Ministerium für Kultur und Wissenschaft des Landes Nordrhein-Westfalen under the Kooperationsplattformen 2022 program, grant number: KP22-106A

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

git_annex-10.20250605.post2-py3-none-win_amd64.whl (26.8 MB view details)

Uploaded Python 3Windows x86-64

git_annex-10.20250605.post2-py3-none-manylinux_2_34_x86_64.whl (21.6 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

git_annex-10.20250605.post2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

git_annex-10.20250605.post2-py3-none-macosx_14_0_arm64.whl (36.0 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

git_annex-10.20250605.post2-py3-none-macosx_13_0_x86_64.whl (14.3 MB view details)

Uploaded Python 3macOS 13.0+ x86-64

File details

Details for the file git_annex-10.20250605.post2-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250605.post2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 398c4845a6d8df0399313c5af4a922531b6ec37f3e27675818e7e32ec55a03d6
MD5 d89306669ae94bb2b49c52bb1b79b689
BLAKE2b-256 ae96c9d84adda73430b07f1b76887800e1771b80f57a3ba118fd1ee3c3fb9601

See more details on using hashes here.

File details

Details for the file git_annex-10.20250605.post2-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250605.post2-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b7349641bb2b395a4e52f12b3fa6b65261ab8e3b54949c5bbb44a429a34ad586
MD5 7bd0a4fbb06c8c3b25dede5c85452ee2
BLAKE2b-256 91a531fcb8fbcb2ddb9bc0b844e8bd6ae6cba4a9a6ac9d908b36568f01eb8f53

See more details on using hashes here.

File details

Details for the file git_annex-10.20250605.post2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250605.post2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7cccbd84301eff542dc6e80d247b4b45f22f4bf35b2c04c57d43d2109103b66c
MD5 3823020182d5056b08f12a1ca93d17c0
BLAKE2b-256 ac77e68af734c23b9292e7c4b5d8b017938f3385f0751c991e63aea48f585624

See more details on using hashes here.

File details

Details for the file git_annex-10.20250605.post2-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250605.post2-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8da68425b74359dee8c991266924a347b88c0f93271f92929bbfd508190a076a
MD5 25f6fa568d22c582d934f9cd6ae9186b
BLAKE2b-256 83998ff4cfc13c250fd3453a6a4d0b6aaec1e7eaa860de07a6c794c6f0e49992

See more details on using hashes here.

File details

Details for the file git_annex-10.20250605.post2-py3-none-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250605.post2-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 00082952ef165f4a2bb25c13c7bb73229e90ac4a54faa0c453e82b0925db5c1e
MD5 1b9ae84ef30cbb60dc36850751192d0a
BLAKE2b-256 282608362dadd1f3471126dea8914e11e52bff1cca6ce9afd096b2688bb6c5b1

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