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.post1-py3-none-win_amd64.whl (26.8 MB view details)

Uploaded Python 3Windows x86-64

git_annex-10.20250605.post1-py3-none-manylinux_2_34_x86_64.whl (21.3 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

git_annex-10.20250605.post1-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.post1-py3-none-macosx_14_0_arm64.whl (36.0 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

git_annex-10.20250605.post1-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.post1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250605.post1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3af8dfa290dce36199a13b023ddc9acb3d30a5d0e392f5b0cd0e2c9e9157fdea
MD5 ed44fe4e64cc6d27b14c436e36fb8823
BLAKE2b-256 01020029436fbe8b2380eb3e9ba11f6178d3a3c040553cfcbb839fbee9c7cd55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250605.post1-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0f4dbd38be7f210db30a81d1c6f3eb0c803105cf727b3016c157fc9da8dfd33b
MD5 2f0cf3c736b80e9757f7edbef221d569
BLAKE2b-256 adc6693d756a3ea2b7f684fd4d81f14b43d682c0208b2b8a286346e253f85b54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250605.post1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 575f4f14fa840eb3f4d86c69c124b2b5ee496e4effa9637b7d3fa9c5a3dd450c
MD5 a2c7c02cfad251b298afa327e539c53d
BLAKE2b-256 d13d03e4820d305f63bdf6460a912f28216441d6a2a1a06250e458129e051dc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250605.post1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 95a5a02628269b2dcfa3a4e5755e1e5a61c754f6aac51ec1e5d553f0a5e10aae
MD5 5fb671410054f3a81e8b4256eeb17f42
BLAKE2b-256 ebdb177c741d70bd684de0627c1acfd6e613e43015cb5e2ae2c6a228442f69bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_annex-10.20250605.post1-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2e7873583cc379565a82a34fe3ae7af11ba1b5f77b7d48f2273411dd15c5971d
MD5 c1d1ca58a022911809bdd0f74efd4319
BLAKE2b-256 6bbe4503be2c7fb771383de23614e6901e3f56ac68cb45957f883d2f22fa8a15

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