manage files with git, without checking their contents into git
Project description
Python wheel package for git-annex
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bc63486ee1beffd7200f4e7e3323123641dd146067b104547bd85209b00b9b6
|
|
| MD5 |
2e0078b58e321684faed760e93fd878c
|
|
| BLAKE2b-256 |
a7129689ee50c88d5632e612703505b104ae41a3f2d8b9a1fd27cb2f4744c3ae
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
157ec16270aa3cd6fd45f16de8963d9f9c298c260ec0fd460c92a2a52ea5a789
|
|
| MD5 |
3c3dc819b61ee8b4c8359896a90f1ab8
|
|
| BLAKE2b-256 |
0f36b5f70dade258ce23ac0a7b33e4c8184be3dadb5a9fbad0bb773927ae1248
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ddc96a077283df17c02b287fc07874546fc9cd32dc3904d996bc841ac04cdf7
|
|
| MD5 |
664cbdc95ef909cbe0a883f49115c0ad
|
|
| BLAKE2b-256 |
25e104428018a0716a95f714fc0ce1a081e56c7796273ca3a959638d5b01643a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21fc91c6fb31abe38890d774ed5b39436cfd3fe589e38772be519f5e633d71b8
|
|
| MD5 |
7259eca70ef66856a306609f187a0239
|
|
| BLAKE2b-256 |
5fa4f69d1f801d8d5a8fc03392718f737cfe1850706ad053eb06234ddf3cfd7a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
171e0e096b7551cbedf7dc04eb5254721dbcdf9d18706fc7e926443afba777dc
|
|
| MD5 |
82c5215f14bf42c56678788de7671d27
|
|
| BLAKE2b-256 |
e5098a6fe029eae7c86ef36e123aa01e849245feac95d5088a34d7136fee8d9c
|