Skip to main content

manage files with git, without checking their contents into git

Project description

Python wheel package for git-annex

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, but without the git-annex assistant. The primary purpose of this package is to provide git-annex (as a dependency), installed in a virtual environment. Users of the git-annex assistant application likely install git-annex via any of its platform packages.

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

Git-annex is built with libmagic support, but the library is not included and needs to be deployed separately.

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

Uploaded Python 3Windows x86-64

git_annex-10.20250520b7-py3-none-manylinux_2_34_x86_64.whl (21.3 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

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

Uploaded Python 3macOS 14.0+ ARM64

git_annex-10.20250520b7-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.20250520b7-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250520b7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 502680cfd6869d3f765c7a256c032f73691856ddc17a012966d4459940099bcc
MD5 2ff7e056c421dbf71e5a128271f7e1ff
BLAKE2b-256 bcd2e6cacb9ebd747cbb09c55340dcc5c239f2b126b5eb4a43f47e0a3dafaab0

See more details on using hashes here.

File details

Details for the file git_annex-10.20250520b7-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250520b7-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0dea2081de7fc20fd0500885530edcf2ea714aae314a3db20868bbfe46a85b97
MD5 2b28a667abb99357a6446c199dedc61e
BLAKE2b-256 922de2a1336372598feb5a7c80f56e701a5507bed089d9891a06b97d87f8ff50

See more details on using hashes here.

File details

Details for the file git_annex-10.20250520b7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250520b7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f86dc427f82ac218d278ebf4eda477460a54d868ba8f1a99adf3f57e18c6a6b
MD5 50d3f679f00e20c9cb77bb0e922e7da7
BLAKE2b-256 38a4906c0a58593870c8150950e2c572e9499c964b6a59cf03ef0e93a65a50f0

See more details on using hashes here.

File details

Details for the file git_annex-10.20250520b7-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250520b7-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3fc72daea9cba5fc30e3cea94dcac20c5f1ed239279a373ecbceeb8d34bce3f6
MD5 4f0f2621545898d6f8131381f45bb126
BLAKE2b-256 d728297fc3f819f97cb57aac412ca2627de10dd1a188798d3b086b425ff2469a

See more details on using hashes here.

File details

Details for the file git_annex-10.20250520b7-py3-none-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for git_annex-10.20250520b7-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 cfd5c77bba8169e70beeb8ca1dbce1461253e664d1a5545e3f683fa2fb8a567b
MD5 8c17eee35251d6fe62832e44a302194d
BLAKE2b-256 62d80dc29a37971a6c9104b1a3e66139b094cc812bb1325f6a6dc2694d80f520

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