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 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.20250520b1
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
- https://pypi.org/project/git-annex/
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
- TODO
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,,