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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ ARM64

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

Uploaded Python 3macOS 15.0+ x86-64

git_annex-10.20260525-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.20260525-py3-none-win_amd64.whl.

File metadata

  • Download URL: git_annex-10.20260525-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.16 {"installer":{"name":"uv","version":"0.11.16","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.20260525-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d53f5e4692e4cbb3234fdcac3e0019e2fa7f449d3f3ceda2b54c672804b692b1
MD5 7b1ec3c2da1877680c6bcdd9e15aa3d0
BLAKE2b-256 f79219556db0afed5827ea0e2bf9ac64c2e28bf5a6be07fdd1b263274f6d44c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260525-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.16 {"installer":{"name":"uv","version":"0.11.16","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.20260525-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d27783a3c0ca9e186e13eb593e0d83bb8f31487ddc8c840755ca0fc159d8a610
MD5 192f531f8280bef7705d47027d081a82
BLAKE2b-256 c7f8e482ce2e6918466758c76eeae077db5bc6641e0aaf954e3c5175935d37b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260525-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.16 {"installer":{"name":"uv","version":"0.11.16","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.20260525-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 eebf63668b93cc94993c58017e7134422860ce658958d44e38a6a630957016b9
MD5 3af6dc5b24d143b3f3f0b6c846dd10a0
BLAKE2b-256 238f2b188dd8c040a55678459f4d79142450a2b08cae3a04ad9633f1007be984

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260525-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.16 {"installer":{"name":"uv","version":"0.11.16","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.20260525-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f8d02eeff18faf4c48599b08da3a759a9364357589932bec6e9dd73cf825bb5a
MD5 220dd19fd61281e43d7ee5c56b11af57
BLAKE2b-256 8cf79089f732d2ce0081848ccf6aa192cb14e37bf61e0b2336d78261fdcd037e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_annex-10.20260525-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.16 {"installer":{"name":"uv","version":"0.11.16","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.20260525-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 413e5b6dedb368f8d9ecd3b6bb80a49fcc5e4bdb6c7696dbbc5ca17b1f614c02
MD5 08a25c89957c292d4c49d43bddd8fe1f
BLAKE2b-256 eeff63e149671824bf615cf33f06d672d2a8aa32e0d5c9491f3838454299cbb4

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