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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ ARM64

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

Uploaded Python 3macOS 15.0+ x86-64

git_annex-10.20260316-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.20260316-py3-none-win_amd64.whl.

File metadata

  • Download URL: git_annex-10.20260316-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.11 {"installer":{"name":"uv","version":"0.10.11","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.20260316-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8bc63486ee1beffd7200f4e7e3323123641dd146067b104547bd85209b00b9b6
MD5 2e0078b58e321684faed760e93fd878c
BLAKE2b-256 a7129689ee50c88d5632e612703505b104ae41a3f2d8b9a1fd27cb2f4744c3ae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260316-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.11 {"installer":{"name":"uv","version":"0.10.11","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.20260316-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 157ec16270aa3cd6fd45f16de8963d9f9c298c260ec0fd460c92a2a52ea5a789
MD5 3c3dc819b61ee8b4c8359896a90f1ab8
BLAKE2b-256 0f36b5f70dade258ce23ac0a7b33e4c8184be3dadb5a9fbad0bb773927ae1248

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260316-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.11 {"installer":{"name":"uv","version":"0.10.11","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.20260316-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9ddc96a077283df17c02b287fc07874546fc9cd32dc3904d996bc841ac04cdf7
MD5 664cbdc95ef909cbe0a883f49115c0ad
BLAKE2b-256 25e104428018a0716a95f714fc0ce1a081e56c7796273ca3a959638d5b01643a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260316-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.11 {"installer":{"name":"uv","version":"0.10.11","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.20260316-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 21fc91c6fb31abe38890d774ed5b39436cfd3fe589e38772be519f5e633d71b8
MD5 7259eca70ef66856a306609f187a0239
BLAKE2b-256 5fa4f69d1f801d8d5a8fc03392718f737cfe1850706ad053eb06234ddf3cfd7a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260316-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.11 {"installer":{"name":"uv","version":"0.10.11","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.20260316-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 171e0e096b7551cbedf7dc04eb5254721dbcdf9d18706fc7e926443afba777dc
MD5 82c5215f14bf42c56678788de7671d27
BLAKE2b-256 e5098a6fe029eae7c86ef36e123aa01e849245feac95d5088a34d7136fee8d9c

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