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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ ARM64

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

Uploaded Python 3macOS 15.0+ x86-64

git_annex-10.20260601-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.20260601-py3-none-win_amd64.whl.

File metadata

  • Download URL: git_annex-10.20260601-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.24 {"installer":{"name":"uv","version":"0.11.24","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.20260601-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 bb270b84d40fe7730351e0b36145e5814da8ae0045a671f06b71b7b07cb74ba7
MD5 a52b6dbee299f4fafc6ddc2ea05bb2ce
BLAKE2b-256 d15c8a1350a6ab363bfffed5f9ed610f72834f4365134433668ca0143d3c5de5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260601-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.24 {"installer":{"name":"uv","version":"0.11.24","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.20260601-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7334edaa4fe480cfd5667d741c91f09d562b8654ae96f11acb2f72aa8511f9a8
MD5 7f0508f50a0c34e6f2efc389ad6e30ab
BLAKE2b-256 556c38f84088ed47ecc8d9410f4229fab583190c548b09396881c9fd2d4206cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260601-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.24 {"installer":{"name":"uv","version":"0.11.24","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.20260601-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 0e1199770bd29b4ac452ba6915799383ba4b69cd702aa14505e1743d2ef44cec
MD5 a5cb719eb711bcca335d67aa8a9ce5ee
BLAKE2b-256 d2f05277d20864cc1ef57baa9d39e006a6840002057c1f6c88794851af38b615

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260601-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.24 {"installer":{"name":"uv","version":"0.11.24","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.20260601-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 eede7ce3129c6aac7183d6fde311675197e556c7e3dccdac86f22b42d3f9dfea
MD5 8d61431630519c50946aec5341c666ec
BLAKE2b-256 5a20b77b54462d9842229a3fb74045d17c02e82342d2733e95615b076d0fd3cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260601-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.24 {"installer":{"name":"uv","version":"0.11.24","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.20260601-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6b6cc79b450701baabe88f0ac741896f8397b066b0d650c50527c3340c22041e
MD5 a08b5b493231f47fcb655eb457129ef2
BLAKE2b-256 3dcb78c08cc3bc134ed95ac9da792bc6cd2f28c3c785e706b2fc214d0c9c3848

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