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

Uploaded Python 3Windows x86-64

git_annex-10.20260421-py3-none-manylinux_2_34_x86_64.whl (21.9 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

git_annex-10.20260421-py3-none-manylinux_2_34_aarch64.whl (26.3 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

git_annex-10.20260421-py3-none-macosx_15_0_x86_64.whl (14.3 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

git_annex-10.20260421-py3-none-macosx_14_0_arm64.whl (36.3 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file git_annex-10.20260421-py3-none-win_amd64.whl.

File metadata

  • Download URL: git_annex-10.20260421-py3-none-win_amd64.whl
  • Upload date:
  • Size: 27.1 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for git_annex-10.20260421-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 760cbf1debc46a3ce13c0b19803275b72042dcb12ffdda51c82693c06e627228
MD5 5edcdb0b645902c938e8f67bbd8d2ac1
BLAKE2b-256 da621455e5ef0b67693401197b26d971220d803d0622c3c626c5b7f57ef50f34

See more details on using hashes here.

File details

Details for the file git_annex-10.20260421-py3-none-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: git_annex-10.20260421-py3-none-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 21.9 MB
  • Tags: Python 3, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for git_annex-10.20260421-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a826d7ffe4588807a0105b451611475056ce11c67fb39ff0a97fb012ec3c6e22
MD5 3d3a2d5c3d18b69b00ebe2b40951b23e
BLAKE2b-256 b4b60aba3a6d6e3fc16df5187ebe00267565ec432d2de8c4e5807a7b9badebc3

See more details on using hashes here.

File details

Details for the file git_annex-10.20260421-py3-none-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: git_annex-10.20260421-py3-none-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 26.3 MB
  • Tags: Python 3, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for git_annex-10.20260421-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6fff107188b609518af66e1bb12f07be65e97052f5897ce690cec29ee7babba9
MD5 b4a569c5ef0b0d4501d2bea483c06f30
BLAKE2b-256 393ec0573c561a6ae1f58803d906a1ac8f30224004bfe6f4e8293a57333a24a6

See more details on using hashes here.

File details

Details for the file git_annex-10.20260421-py3-none-macosx_15_0_x86_64.whl.

File metadata

  • Download URL: git_annex-10.20260421-py3-none-macosx_15_0_x86_64.whl
  • Upload date:
  • Size: 14.3 MB
  • Tags: Python 3, macOS 15.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for git_annex-10.20260421-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 936f92e04c6e42b596fa500d1f9e445e2013ea71ba0e838313977c052780b8bc
MD5 d6ab2279384bc6dd9d735e3feb9bb9ab
BLAKE2b-256 3e1094a3073ad3b0c357d2847208236276eeff8545163e45546b04371bd7f4d8

See more details on using hashes here.

File details

Details for the file git_annex-10.20260421-py3-none-macosx_14_0_arm64.whl.

File metadata

  • Download URL: git_annex-10.20260421-py3-none-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 36.3 MB
  • Tags: Python 3, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for git_annex-10.20260421-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 37e91dbff1c4d4e3bbd18429597a4a75a94a1f65dd6b12e40bc479024f4f353c
MD5 5215e0c06a83b107cb6fb68fec965af1
BLAKE2b-256 8e9384e463ad5df29840c6fc376e568a11c8d01939d587d01277d048941e769c

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