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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ x86-64

git_annex-10.20260213-py3-none-manylinux_2_34_aarch64.whl (26.2 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

git_annex-10.20260213-py3-none-macosx_15_0_x86_64.whl (14.2 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

git_annex-10.20260213-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.20260213-py3-none-win_amd64.whl.

File metadata

  • Download URL: git_annex-10.20260213-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.10.2 {"installer":{"name":"uv","version":"0.10.2","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.20260213-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 dec163bc304b3f105dcec8bb04edfee86fe3a2a67ceecf425da6a1230383fa25
MD5 e15a3706412f13f50b3973804f0e3657
BLAKE2b-256 db0288e6e445d520fde5dcc49ff5189df5ac2eac0edc9e228354a8e3792ab7e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260213-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.10.2 {"installer":{"name":"uv","version":"0.10.2","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.20260213-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a77c1a4d62d3c3589c90ce1f7e695cebc1b20ad24fb04391449eda6d99b035a1
MD5 628162d0900fa82dc541b363de987b35
BLAKE2b-256 fb4ef4129ecb084904f2a9969a0777454b3d47ea211a78f0a92c7fd21f575fcc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260213-py3-none-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 26.2 MB
  • Tags: Python 3, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","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.20260213-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d76ac3131d221a3bdcd036d48c120abcc08ca14010419bc43bd7377bd55f9704
MD5 74a39d93ab87afb715160790458b0aa8
BLAKE2b-256 4337a63098b1536e10da70cc35fcbfe3c7ffd46e0e48bdd3f67567861aee7ab0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260213-py3-none-macosx_15_0_x86_64.whl
  • Upload date:
  • Size: 14.2 MB
  • Tags: Python 3, macOS 15.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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.20260213-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 3a441f585c9739d0e4353a0f4271fbaa02d855e7286954a51d725fd72b028515
MD5 2265ba4322d2135254fc256aa16adba5
BLAKE2b-256 bfb2572335cbcdeaa6d426ee53e2cbd4ad60e75130650ed556652c79ba4ad077

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260213-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.10.2 {"installer":{"name":"uv","version":"0.10.2","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.20260213-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9de2a7b8303328077c12be80dd80d6fc53a227666f30729c6bc4f12b4ef6eb9a
MD5 4091e3a85ae2eac9ea7e03ae1d85b8a1
BLAKE2b-256 029df1a3c089b494e70baec6fd455adccd517edb9fdc93847e7a4b42ce9dd1ea

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