git-annex 10.20250520b1__py3-none-win_amd64.whl → 10.20250520b3__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- git_annex/__init__.py +15 -1
- git_annex/git-annex.exe +0 -0
- {git_annex-10.20250520b1.dist-info → git_annex-10.20250520b3.dist-info}/METADATA +42 -3
- git_annex-10.20250520b3.dist-info/RECORD +10 -0
- git_annex-10.20250520b1.dist-info/RECORD +0 -10
- {git_annex-10.20250520b1.dist-info → git_annex-10.20250520b3.dist-info}/WHEEL +0 -0
- {git_annex-10.20250520b1.dist-info → git_annex-10.20250520b3.dist-info}/entry_points.txt +0 -0
git_annex/__init__.py
CHANGED
@@ -4,6 +4,20 @@ import sys
|
|
4
4
|
|
5
5
|
|
6
6
|
def cli():
|
7
|
+
"""Emulate a symlink to a binary.
|
8
|
+
|
9
|
+
This script essentially calls the `git-annex` binary that is shipped
|
10
|
+
with the package, but using the `argv` list (including a potentially
|
11
|
+
different executable name) pass to the script itself.
|
12
|
+
|
13
|
+
It relies on the `executable` argument of `subprocess.run()` to achieve
|
14
|
+
this.
|
15
|
+
|
16
|
+
This approach provides alternative means for git-annex's installation
|
17
|
+
method with symlinks pointing to a single binary, and works on platforms
|
18
|
+
without symlink support, and also in packages that cannot represent
|
19
|
+
symlinks.
|
20
|
+
"""
|
7
21
|
exe_dir = op.dirname(__file__)
|
8
22
|
exe = op.join(
|
9
23
|
exe_dir,
|
@@ -23,7 +37,7 @@ def cli():
|
|
23
37
|
# try flush here to trigger a BrokenPipeError
|
24
38
|
# within the try-except block so we can handle it
|
25
39
|
# (happens if the calling process closed stdout
|
26
|
-
# already
|
40
|
+
# already)
|
27
41
|
sys.stdout.flush()
|
28
42
|
except BrokenPipeError:
|
29
43
|
# setting it to None prevents Python from trying to
|
git_annex/git-annex.exe
CHANGED
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: git-annex
|
3
|
-
Version: 10.
|
3
|
+
Version: 10.20250520b3
|
4
4
|
Summary: manage files with git, without checking their contents into git
|
5
5
|
Project-URL: Homepage, https://git-annex.branchable.com/
|
6
6
|
Project-URL: Documentation, https://git-annex.branchable.com/git-annex
|
@@ -35,7 +35,37 @@ Description-Content-Type: text/markdown
|
|
35
35
|
|
36
36
|
# Python wheel package for git-annex
|
37
37
|
|
38
|
-
|
38
|
+
## Why?
|
39
|
+
|
40
|
+
[Git-annex](https://git-annex.branchable.com/) is written in Haskell and plenty
|
41
|
+
of [installation methods](https://git-annex.branchable.com/install/) are
|
42
|
+
available. However, for deploying git-annex as a dependency of a Python
|
43
|
+
library/application, like [DataLad](https://datalad.org) or
|
44
|
+
[AnnexRemote](https://github.com/Lykos153/AnnexRemote), system packages
|
45
|
+
are a lot less flexible than Python's virtual environments, and other methods
|
46
|
+
are more complex and fragile.
|
47
|
+
|
48
|
+
With git-annex being available from PyPi, versioned dependencies and deployment
|
49
|
+
in application-specific environments are possible via standard means of Python
|
50
|
+
packaging.
|
51
|
+
|
52
|
+
## Caveats
|
53
|
+
|
54
|
+
A standard git-annex deployment is (primarily) a single binary (`git-annex`),
|
55
|
+
and a bunch of symlinks that make this one binary fulfilled multiple roles
|
56
|
+
(`git-annex-shell`, `git-remote-annex`, etc.). A Python wheel, however, is a
|
57
|
+
ZIP file container with no support for symlinks, and also no support for
|
58
|
+
"post-install" scripts.
|
59
|
+
|
60
|
+
In order to square this circle, the git-annex binary is wrapped via regular
|
61
|
+
Python entrypoint scripts that handle calling git-annex as necessary. This
|
62
|
+
delivers a cross-platform compatible wheel, but at a start-up cost (~30ms vs
|
63
|
+
~11ms on my laptop).
|
64
|
+
|
65
|
+
## Installation
|
66
|
+
|
67
|
+
Get the package from [PyPi](https://pypi.org/project/git-annex/), and install like
|
68
|
+
any other package from PyPi.
|
39
69
|
|
40
70
|
[uv](https://docs.astral.sh/uv/) users can deploy git-annex in a dedicated virtual
|
41
71
|
environment via the one-liner:
|
@@ -44,6 +74,8 @@ environment via the one-liner:
|
|
44
74
|
uv tool install git-annex
|
45
75
|
```
|
46
76
|
|
77
|
+
## git-annex build configuration
|
78
|
+
|
47
79
|
Git-annex is built with libmagic support, but without the git-annex assistant.
|
48
80
|
The primary purpose of this package is to provide git-annex (as a dependency),
|
49
81
|
installed in a virtual environment. Users of the git-annex assistant application
|
@@ -73,4 +105,11 @@ to be deployed separately.
|
|
73
105
|
|
74
106
|
### How to update for a new git-annex release?
|
75
107
|
|
76
|
-
|
108
|
+
Advance the submodule `./git-annex` to the new release tag.
|
109
|
+
|
110
|
+
Now adjust the package version in `pyproject.toml` accordingly. This version
|
111
|
+
must follow the [rules for Python
|
112
|
+
packages](https://packaging.python.org/en/latest/discussions/versioning/).
|
113
|
+
|
114
|
+
The included (GitHub) action workflows will build a corresponding wheel
|
115
|
+
and upload it to PyPi.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
git_annex/__init__.py,sha256=jf81cahptAkcvJ28RYAhZ8FEsKJsGwmbTyjTW6Jq2iM,1519
|
2
|
+
git_annex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
git_annex/git-annex.exe,sha256=fDzctuiD05wz0ZUlEf7pLWlSSodw5mp77MbA-Xtx5FA,96280576
|
4
|
+
git_annex/libgnurx-0.dll,sha256=sVYpwWNjXDE3aE6FOtBJNmxt6lYkg3hMNZX3dzYa32g,382387
|
5
|
+
git_annex/libmagic-1.dll,sha256=rbOyhepldi0AEIwbE67uxXJHL3wMYdavKn7gatftMS8,1225472
|
6
|
+
git_annex/magic.mgc,sha256=_HtmpGIkc8M__H5mrJUJsbCJgZoGQURBbcDmLopuDRk,4873104
|
7
|
+
git_annex-10.20250520b3.dist-info/METADATA,sha256=oSi0YBEeYlpgonZrbdkWSeUy_stsSTm8xyYc_RnPgqs,4533
|
8
|
+
git_annex-10.20250520b3.dist-info/WHEEL,sha256=Vhj7RpPOKCXcsr4rUs7q4pISuo5nT6VsOuaQwH9GILY,94
|
9
|
+
git_annex-10.20250520b3.dist-info/entry_points.txt,sha256=BI1LqRvI7ETq6hOuPgaT9O9cmmHJwYS3SthvRoNS43s,146
|
10
|
+
git_annex-10.20250520b3.dist-info/RECORD,,
|
@@ -1,10 +0,0 @@
|
|
1
|
-
git_annex/__init__.py,sha256=ozwI6nWR3OmsbQXD0sDA7M6cWcE4UtUYtkd0VzpIFUI,928
|
2
|
-
git_annex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
git_annex/git-annex.exe,sha256=fr7x6u6tNBq2fWDtDNVeCOXYjVRfhYiNgl-HkPK3nlk,96238592
|
4
|
-
git_annex/libgnurx-0.dll,sha256=sVYpwWNjXDE3aE6FOtBJNmxt6lYkg3hMNZX3dzYa32g,382387
|
5
|
-
git_annex/libmagic-1.dll,sha256=rbOyhepldi0AEIwbE67uxXJHL3wMYdavKn7gatftMS8,1225472
|
6
|
-
git_annex/magic.mgc,sha256=_HtmpGIkc8M__H5mrJUJsbCJgZoGQURBbcDmLopuDRk,4873104
|
7
|
-
git_annex-10.20250520b1.dist-info/METADATA,sha256=9DVQfuOcyVU-PYxViqj8HwqwLpT-FDOQTZPOATLjSyg,2832
|
8
|
-
git_annex-10.20250520b1.dist-info/WHEEL,sha256=Vhj7RpPOKCXcsr4rUs7q4pISuo5nT6VsOuaQwH9GILY,94
|
9
|
-
git_annex-10.20250520b1.dist-info/entry_points.txt,sha256=BI1LqRvI7ETq6hOuPgaT9O9cmmHJwYS3SthvRoNS43s,146
|
10
|
-
git_annex-10.20250520b1.dist-info/RECORD,,
|
File without changes
|
File without changes
|