ghdl 0.4.9__tar.gz → 0.4.10__tar.gz

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.
ghdl-0.4.10/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ # Compiled python modules.
2
+ *.pyc
3
+ __pycache__/
4
+
5
+ # Setuptools distribution folder.
6
+ /dist/
7
+
8
+ # Poetry build
9
+ /build/
10
+
11
+ # Python egg metadata, regenerated from source files by setuptools.
12
+ /*.egg-info
13
+
14
+ TODO
15
+ setup.py.base
16
+
17
+ restclient
18
+
19
+ /*.egg-info/
20
+ /.venv/
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: ghdl
3
- Version: 0.4.9
3
+ Version: 0.4.10
4
4
  Summary: Binary Manager for Github Releases
5
5
  Author-email: Imran Khan <imran@khan.ovh>
6
6
  License: GNU AFFERO GENERAL PUBLIC LICENSE
@@ -664,14 +664,13 @@ License: GNU AFFERO GENERAL PUBLIC LICENSE
664
664
  if any, to sign a "copyright disclaimer" for the program, if necessary.
665
665
  For more information on this, and how to apply and follow the GNU AGPL, see
666
666
  <https://www.gnu.org/licenses/>.
667
-
668
- Requires-Python: <3.13,>=3.8
669
667
  License-File: LICENSE
670
- Requires-Dist: xtract==0.1a3
671
- Requires-Dist: xdg>=4.0.1
672
- Requires-Dist: python-dateutil>=2.8.1
668
+ Requires-Python: <3.14,>=3.8
673
669
  Requires-Dist: docopt>=0.6.2
674
- Requires-Dist: python-magic>=0.4.25
675
- Requires-Dist: hyrule>=0.7.0
676
- Requires-Dist: hy>=1.0.0
677
670
  Requires-Dist: httpx>=0.27.0
671
+ Requires-Dist: hy>=1.0.0
672
+ Requires-Dist: hyrule>=0.7.0
673
+ Requires-Dist: python-dateutil>=2.8.1
674
+ Requires-Dist: python-magic>=0.4.25
675
+ Requires-Dist: xdg>=4.0.1
676
+ Requires-Dist: xtract==0.1a3
ghdl-0.4.10/README.org ADDED
@@ -0,0 +1,173 @@
1
+ *** GHDL
2
+
3
+ Download and keep self-contained executables from Github Releases updated.
4
+
5
+ *** Install
6
+
7
+ #+begin_src sh
8
+ pip install ghdl
9
+ #+end_src
10
+
11
+ Additionally, it requires your system to have sqlite, libmagic and tools relevant to archives like tar, gzip, unzip etc. installed.
12
+
13
+ *** About
14
+
15
+ More and more projects are doing self-contained multi-platform/architecture binary releases at github. While distro provided packages remain the best idea, they are not a portable/zero-maintenance solution. If you hop between machines running on different hardware/OS/architecture, it's convenient to just download binaries directly.
16
+
17
+ But doing so and keeping them updated manually is tedious. With this tool you can automate the task by encapsulating the logic in a config file which you can then carry aroud, maybe even hook up to a cron and forget.
18
+
19
+ *** Config
20
+
21
+ The config file should be provided at =~/.config/ghdl/config=. It looks like:
22
+
23
+ #+begin_src hy
24
+ (repo "containers/crun"
25
+ :asset-filter "static")
26
+ #+end_src
27
+
28
+ When you run ghdl, it will download the asset with "static" in its name, extract the archive if needed, find the binary, and place it in =~/.local/bin/= (by default). And next time you run ghdl it won't be downloaded again, unless upstream releases new version in-between.
29
+
30
+ **** Options
31
+
32
+ These are the options you can specify:
33
+
34
+ ***** =:asset-filter= (required)
35
+
36
+ A regular expression that can uniquely identify an asset from a list of them in the latest _release_ section of the target repo. Matching is done case-insensitively.
37
+
38
+ ***** =:name=
39
+
40
+ Name the binary will be saved as. Default is to infer it from repo name, so when the repo is "containers/crun" the name will by default be "crun".
41
+
42
+ ***** =:basename-glob=
43
+
44
+ When asset is an archive, ghdl automatically extracts it. But it needs to know which file to install, as there are usually multiple files in the archive. By default it can filter out only binaries using libmagic, and by default it looks for a binary that matches "=*{name}*=" glob pattern which almost always works (=name= is what's described above). So in practice, you will likely need to set this very rarely. For example, below you could omit it because the binary is named "devd" which is matched by the glob "\ast{}devd\ast{}" anyway:
45
+
46
+ #+begin_src hy
47
+ (repo "cortesi/devd"
48
+ :basename-glob "devd" ;; Not necessary
49
+ :asset-filter "linux64")
50
+ #+end_src
51
+
52
+ And in the following case, again the binary name "kompose-linux-amd64" is already covered by glob "\ast{}kompose\ast{}":
53
+
54
+ #+begin_src hy
55
+ (repo "kubernetes/kompose"
56
+ :basename-glob "kompose*" ;; Not necessary
57
+ :asset-filter "linux-amd64.*gz$")
58
+ #+end_src
59
+
60
+ Sometimes the default is too broad. For example, in case of repo "=github/hub=" the binary is named just "hub" which isn't a problem, but the glob "\ast{}hub\ast{}" matches not just the binary but some other doc file too. Except that's where libmagic comes in and filters out all non-application mimetypes.
61
+
62
+ #+begin_src hy
63
+ (repo "github/hub"
64
+ :basename-glob "hub" ;; Again not necessary
65
+ :asset-filter "linux-amd64")
66
+ #+end_src
67
+
68
+ So in practice, it's probably going to be exceedingly rare when this setting will be called for action.
69
+
70
+ ***** =:strip=
71
+
72
+ Whether to run strip on the downloaded binary or not, default is True. But you may need to set it to =False= sometimes, e.g. say for appimages:
73
+
74
+ #+begin_src hy
75
+ (repo "neovim/neovim"
76
+ :url-filter "appimage$"
77
+ :strip False)
78
+ #+end_src
79
+
80
+ Stripping can reduce the size of binaries considerably (here the /bin/strip is invoked without argument), but this might not be without trade-off. I have once seen a distro turn off stripping for Golang binaries citing strange behaviour. I have never encountered any problem myself though, so I am keeping this True by default.
81
+
82
+ ***** =:prerelease=
83
+
84
+ You can also choose to live in the edge, some packages for some reason choose to release as pre-release only anyway (so far).
85
+
86
+ #+begin_src hy
87
+ (repo "borkdude/babashka"
88
+ :name "bb"
89
+ :asset-filter "static"
90
+ :prerelease True)
91
+ #+end_src
92
+
93
+ ***** =:pin=
94
+
95
+ Sometimes you might want to pin a particular repo to a particular architecture as that's all they support in github releases. Here pinning can be useful to create portable configuration, as ghdl simply won't do anything when run on anything different. For example,
96
+
97
+ #+begin_src hy
98
+ (repo "LukeChannings/deno-arm64"
99
+ :name "deno"
100
+ :pin "aarch64"
101
+ :asset-filter "deno")
102
+ #+end_src
103
+
104
+ As this is an aarch64 specific project, pinning ensures the recipe won't even be run on say x86_64, so you are spared of the failure message.
105
+
106
+ ***** =:release-filter=
107
+
108
+ Some projects release multiple unrelated kind of artefacts under same repo. While we still can't have multiple entries for same repo in ghdl, if you want to filter a particular kind of release amidst many, this is helpful. For example ~biomejs/biome~ repo releases VSCode Extension and CLI under same repo, if we just want the CLI, we need to first find the matching release:
109
+
110
+ #+begin_src hy
111
+ (repo "biomejs/biome"
112
+ :release-filter "\\bCLI\\b" ;; regex with word boundary
113
+ :asset-filter f"linux-x64") ;; this will now look into the release found by :release-filter
114
+ #+end_src
115
+
116
+ **** Advanced Configuration
117
+
118
+ The goal is to eventually define something that hopefully can continue to work cross-platform. So ghdl config file is actually Hy code, which means one can do whatever they can in python, and some useful python modules (=re=, =platform= etc.) are loaded already:
119
+
120
+ #+begin_src hy
121
+ (setv my-os (platform.system)
122
+ my-arch (platform.machine))
123
+
124
+ (setv arch-pattern
125
+ (cond (= my-arch "x86_64") "(?:x86[-_]64|x64|amd64|64bit)"
126
+ (= my-arch "aarch64") "(?:arm|aarch)64"))
127
+
128
+ ;; Many golang projects follow this pattern
129
+ (setv os-arch f"{my-os}[-_.]{arch-pattern}")
130
+
131
+ ;; Many rust projects follow this pattern
132
+ (setv rust f"{my-arch}.*?{my-os}")
133
+
134
+ ;; Finally define the repos
135
+ (repo "caddyserver/caddy"
136
+ :asset-filter f"{os-arch}.*gz")
137
+
138
+ (repo "sharkdp/bat"
139
+ :asset-filter rust)
140
+ #+end_src
141
+
142
+ If that seems ugly or inadequate, =:asset-filter= can also be a function (of type =String -> Bool=):
143
+
144
+ #+begin_src hy
145
+ (repo "smallhadroncollider/taskell"
146
+ :asset-filter
147
+ (fn [asset]
148
+ (and
149
+ (in (str.replace (platform.machine) "_" "-") asset)
150
+ (in (str.lower (platform.system)) asset)
151
+ (str.endswith asset ".gz"))))
152
+ #+end_src
153
+
154
+ **** Additional Config
155
+
156
+ You really should user your own API token if possible. Unauthorized API is only limited to 60 calls per hour, so if you have more than 60 repos you need to use a token anyway.
157
+
158
+ #+begin_src hy
159
+ (config
160
+ :location "~/.local/bin/"
161
+ :token "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
162
+ #+end_src
163
+
164
+ **** Sample config
165
+
166
+ The repo contains a [[file:./sample-config][sample config]] file as an example where I am tracking 140+ projects (as of writing this). Most of them has been well behaved and consistent since creating ghdl.
167
+
168
+ *** TODO/Limitation/Ideas
169
+
170
+ - Some programs use same repo to release different parts of project (e.g. dnote does it for server and cli), ghdl can choose one of them, but not multiple at the same time.
171
+ - Some projects include multiple binaries. That's not yet supported, though is probably simple to add.
172
+ - Windows/MacOS doesn't work yet (so much for cross-platform), although fix should be simple; I just don't know various xdg path equivalents in it nor do I have motivation or means to test. However one needs to have tar, gzip etc. in the path which means the likes of msys2, git bash, WSL or whatever, and in those it just might work ootb.
173
+ - Downloads from github could be slow in some parts of the world, nothing could done about that apart from maybe switching to an external downloader (like aria2) from current pure python one.
@@ -1,3 +1,3 @@
1
- __version__ = "0.4.9"
1
+ __version__ = "0.4.10"
2
2
 
3
3
  from ghdl.main import main, set_dry, set_single
@@ -3,7 +3,7 @@ name = "ghdl"
3
3
  description = "Binary Manager for Github Releases"
4
4
  authors = [{name = "Imran Khan", email = "imran@khan.ovh"}]
5
5
  license = {file = "LICENSE"}
6
- requires-python = ">=3.8,<3.13"
6
+ requires-python = ">=3.8,<3.14"
7
7
  dynamic = ["version"]
8
8
  dependencies = [
9
9
  "xtract ==0.1a3",
@@ -29,6 +29,11 @@ python-downloads = "never"
29
29
  python-preference = "system"
30
30
  dev-dependencies = []
31
31
 
32
+ [tool.hatch.version]
33
+ path = "ghdl/__init__.py"
34
+
32
35
  [build-system]
33
- requires = ["setuptools"]
34
- build-backend = "setuptools.build_meta"
36
+ #requires = ["setuptools"]
37
+ #build-backend = "setuptools.build_meta"
38
+ requires = ["hatchling"]
39
+ build-backend = "hatchling.build"
ghdl-0.4.10/run.sh ADDED
@@ -0,0 +1,28 @@
1
+ #!/bin/sh
2
+
3
+ build() {
4
+ # sed -i -E "/^version = /s/\".*\"/$(grep -o -P '__version__ = \K.*\"' ghdl/__init__.py)/" pyproject.toml
5
+ uv build
6
+ }
7
+
8
+ release() {
9
+ # python setup.py sdist bdist_wheel
10
+ # uv run twine upload --repository-url https://test.pypi.org/legacy/ dist/*
11
+ # uv run twine upload dist/*
12
+ uv publish
13
+ }
14
+
15
+ clean() {
16
+ rm -rf dist/ ghdl.egg-info/
17
+ }
18
+
19
+ upgrade() {
20
+ uv lock --upgrade
21
+ uv sync
22
+ }
23
+
24
+ update() {
25
+ bin/ghdl -f $(grep -Po 'repo \"\K[^"]*' ~/.config/ghdl/config | fzf)
26
+ }
27
+
28
+ "$@"
@@ -0,0 +1,531 @@
1
+ (config
2
+ ;; :token "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
3
+ :location "~/.local/bin/")
4
+
5
+ (setv my-os (platform.system)
6
+ my-arch (platform.machine))
7
+
8
+ (setv arch-pattern
9
+ (cond (= my-arch "x86_64") "(?:x86[-_]64|x64|amd64|64bit)"
10
+ (= my-arch "aarch64") "(?:arm|aarch)64"))
11
+
12
+ (setv os-arch f"{my-os}[-_.]{arch-pattern}")
13
+
14
+ (setv rust f"{my-arch}.*?{my-os}")
15
+
16
+ ;;;;;;;;
17
+
18
+ (repo "containers/crun"
19
+ :name "crun"
20
+ :asset-filter f"{os-arch}-disable-systemd$")
21
+
22
+ (repo "smallhadroncollider/taskell"
23
+ :name "taskell"
24
+ :pin "x86_64"
25
+ :asset-filter
26
+ (fn [url]
27
+ (and
28
+ (in (.replace (platform.machine) "_" "-") url)
29
+ (in (.lower (platform.system)) url)
30
+ (.endswith url ".gz"))))
31
+
32
+ (repo "caddyserver/caddy"
33
+ :asset-filter f"{os-arch}.*gz")
34
+
35
+ (repo "cortesi/devd"
36
+ :asset-filter "linux64")
37
+
38
+ (repo "cortesi/modd"
39
+ :asset-filter "linux64")
40
+
41
+ (repo "hadolint/hadolint"
42
+ :pin "x86_64"
43
+ :asset-filter os-arch)
44
+
45
+ (repo "kubernetes/kompose"
46
+ :asset-filter f"{os-arch}.*gz$")
47
+
48
+ (repo "digitalocean/doctl"
49
+ :asset-filter os-arch)
50
+
51
+ (repo "neovim/neovim"
52
+ :asset-filter "appimage$"
53
+ :pin "x86_64"
54
+ :strip False
55
+ :prerelease True)
56
+
57
+ (repo "borkdude/babashka"
58
+ :name "bb"
59
+ :asset-filter os-arch
60
+ :prerelease True)
61
+
62
+ (repo "direnv/direnv"
63
+ :asset-filter os-arch)
64
+
65
+ (repo "denoland/deno"
66
+ :pin "x86_64"
67
+ :asset-filter f"{my-arch}.*?{my-os}")
68
+
69
+ (repo "jhspetersson/fselect"
70
+ :pin "x86_64"
71
+ :asset-filter "musl")
72
+
73
+ (repo "BurntSushi/ripgrep"
74
+ :name "rg"
75
+ :pin "x86_64"
76
+ :asset-filter "musl")
77
+
78
+ (repo "github/hub"
79
+ :asset-filter os-arch)
80
+
81
+ (repo "koalaman/shellcheck"
82
+ :asset-filter os-arch)
83
+
84
+ (repo "benibela/xidel"
85
+ :pin "x86_64"
86
+ :asset-filter "linux64")
87
+
88
+ (repo "rancher/k3s"
89
+ :asset-filter
90
+ (fn [name]
91
+ (return
92
+ (cond (= my-arch "x86_64") (= name "k3s")
93
+ (= my-arch "aarch64") (= name "k3s-arm64")))))
94
+
95
+ (repo "rancher/k3d"
96
+ :prerelease True
97
+ :asset-filter os-arch)
98
+
99
+ (repo "rcoh/angle-grinder"
100
+ :name "agrind"
101
+ :pin "x86_64"
102
+ :asset-filter rust)
103
+
104
+ (repo "nextdns/nextdns"
105
+ :asset-filter f"{os-arch}.*?gz")
106
+
107
+ (repo "earthly/earthly"
108
+ :asset-filter f"earthly-{os-arch}")
109
+
110
+ (repo "buildpacks/pack"
111
+ :pin "x86_64"
112
+ :asset-filter
113
+ (fn [url]
114
+ (return
115
+ (cond (= my-arch "x86_64") (in f"{(str.lower my-os)}.tgz" url)
116
+ (= my-arch "aarch64") (in f"{(str.lower my-os)}-{my-arch}.tgz" url)))))
117
+
118
+ (repo "cloudflare/wrangler"
119
+ :pin "x86_64"
120
+ :asset-filter f"{my-arch}.*?{my-os}")
121
+
122
+ (repo "gohugoio/hugo"
123
+ :asset-filter f"{os-arch}.*gz$")
124
+
125
+ (repo "okteto/okteto"
126
+ :asset-filter f"{os-arch}$")
127
+
128
+ (repo "rclone/rclone"
129
+ :asset-filter f"{os-arch}.*zip$")
130
+
131
+ (repo "autozimu/LanguageClient-neovim"
132
+ :asset-filter f"{my-arch}.*?{my-os}")
133
+
134
+ (repo "amzn/askalono"
135
+ :pin "x86_64"
136
+ :asset-filter my-os)
137
+
138
+ (repo "wagoodman/dive"
139
+ :asset-filter f"{os-arch}.*\\.gz$")
140
+
141
+ (repo "adnanh/webhook"
142
+ :asset-filter os-arch)
143
+
144
+ (repo "kubernetes/minikube"
145
+ :asset-filter f"{os-arch}.*gz$")
146
+
147
+ (repo "purescript/purescript"
148
+ :name "purs"
149
+ :pin "x86_64"
150
+ :asset-filter
151
+ (fn [name]
152
+ (cond (= my-arch "x86_64") (= name "linux64.tar.gz")
153
+ (= my-arch "aarch64") (= name "linux-arm64.tar.gz"))))
154
+
155
+ (repo "purescript/spago"
156
+ :pin "x86_64"
157
+ :asset-filter f"{my-os}.*tar\\.gz$")
158
+
159
+ (repo "derailed/k9s"
160
+ :asset-filter f"{os-arch}\\.tar\\.gz$")
161
+
162
+ (repo "exercism/cli"
163
+ :name "exercism"
164
+ :asset-filter os-arch)
165
+
166
+ (repo "firecracker-microvm/firecracker"
167
+ :asset-filter my-arch)
168
+
169
+ (repo "gleam-lang/gleam"
170
+ :prerelease True
171
+ :asset-filter f"{rust}-musl.tar.gz$")
172
+
173
+ (repo "kmonad/kmonad"
174
+ :prerelease True
175
+ :asset-filter "kmonad"
176
+ :pin "x86_64")
177
+
178
+ (repo "rust-analyzer/rust-analyzer"
179
+ :asset-filter rust)
180
+
181
+ (repo "hairyhenderson/gomplate"
182
+ :asset-filter f"{os-arch}-slim")
183
+
184
+ (repo "superfly/flyctl"
185
+ :asset-filter f"{os-arch}.*gz$")
186
+
187
+ (repo "samtay/so"
188
+ :asset-filter rust)
189
+
190
+ (repo "loadimpact/k6"
191
+ :asset-filter f"{os-arch}.*gz$")
192
+
193
+ (repo "liquidata-inc/dolt"
194
+ :asset-filter os-arch
195
+ :basename-glob "dolt")
196
+
197
+ (repo "duckdb/duckdb"
198
+ :asset-filter f"cli-{os-arch}")
199
+
200
+ (repo "alecthomas/chroma"
201
+ :asset-filter os-arch)
202
+
203
+ (repo "svenstaro/miniserve"
204
+ :asset-filter rust)
205
+
206
+ (repo "sharkdp/diskus"
207
+ :asset-filter rust)
208
+
209
+ (repo "kubernetes-sigs/kind"
210
+ :asset-filter os-arch)
211
+
212
+ (repo "extrawurst/gitui"
213
+ :pin "x86_64"
214
+ :asset-filter "musl")
215
+
216
+ (repo "2mol/pboy"
217
+ :pin "x86_64"
218
+ :asset-filter my-os)
219
+
220
+ (repo "NerdyPepper/dijo"
221
+ :asset-filter
222
+ (fn [url]
223
+ (and
224
+ (in (.lower (platform.system)) url)
225
+ (in (.lower (platform.machine)) url))))
226
+
227
+ (repo "profclems/glab"
228
+ :asset-filter f"{os-arch}.tar.gz")
229
+
230
+ (repo "rustwasm/wasm-pack"
231
+ :asset-filter rust)
232
+
233
+ (repo "hatoo/oha"
234
+ :asset-filter os-arch)
235
+
236
+ (repo "prometheus/node_exporter"
237
+ :asset-filter os-arch)
238
+
239
+ (repo "nginxinc/nginx-prometheus-exporter"
240
+ :asset-filter os-arch)
241
+
242
+ (repo "alexellis/k3sup"
243
+ :asset-filter
244
+ (fn [name]
245
+ (return
246
+ (cond (= my-arch "x86_64") (= name "k3sup")
247
+ (= my-arch "aarch64") (= name "k3sup-arm64")))))
248
+
249
+ (repo "jgm/pandoc"
250
+ :asset-filter os-arch)
251
+
252
+ (repo "weaveworks/ignite"
253
+ :asset-filter arch-pattern)
254
+
255
+ (repo "fatedier/frp"
256
+ :asset-filter os-arch)
257
+
258
+ (repo "schollz/croc"
259
+ :asset-filter f"{os-arch}.tar.gz")
260
+
261
+ (repo "davesnx/query-json"
262
+ :asset-filter os-arch)
263
+
264
+ (repo "dandavison/delta"
265
+ :asset-filter f"{rust}.*?")
266
+
267
+ (repo "tidwall/jj"
268
+ :pin "x86_64"
269
+ :asset-filter os-arch)
270
+
271
+ (repo "cli/cli"
272
+ :name "gh"
273
+ :asset-filter f"{os-arch}.*tar\\.gz")
274
+
275
+ (repo "go-acme/lego"
276
+ :asset-filter os-arch)
277
+
278
+ (repo "cycloidio/inframap"
279
+ :asset-filter os-arch)
280
+
281
+ (repo "nakabonne/ali"
282
+ :asset-filter f"{os-arch}.*tar\\.gz")
283
+
284
+ (repo "screego/server"
285
+ :name "screego"
286
+ :asset-filter os-arch)
287
+
288
+ (repo "epi052/feroxbuster"
289
+ :asset-filter f"{my-arch}-{my-os}.*\\.tar.gz")
290
+
291
+ (repo "Nukesor/pueue"
292
+ :asset-filter os-arch)
293
+
294
+ (repo "slackhq/nebula"
295
+ :asset-filter os-arch)
296
+
297
+ (repo "jesseduffield/lazygit"
298
+ :asset-filter os-arch)
299
+
300
+ (repo "GoogleContainerTools/skaffold"
301
+ :asset-filter os-arch)
302
+
303
+ (repo "ahmetb/kubectx"
304
+ :asset-filter os-arch)
305
+
306
+ (repo "networkimprov/mnm-hammer"
307
+ :pin "x86_64"
308
+ :prerelease True
309
+ :asset-filter os-arch)
310
+
311
+ (repo "ducaale/xh"
312
+ :asset-filter f"{rust}.*?musl")
313
+
314
+ (repo "rs/curlie"
315
+ :asset-filter f"{os-arch}.*tar.gz$")
316
+
317
+ (repo "sayanarijit/xplr"
318
+ :pin "x86_64"
319
+ :asset-filter f"{my-os}.*tar\\.gz$")
320
+
321
+ (repo "soywod/unfog"
322
+ :asset-filter my-os
323
+ :pin "x86_64")
324
+
325
+ (repo "cloudflare/cloudflared"
326
+ :asset-filter f"cloudflared-{os-arch}$")
327
+
328
+ (repo "aquasecurity/trivy"
329
+ :asset-filter f"{os-arch}.*gz$")
330
+
331
+ (repo "commercialhaskell/stack"
332
+ :asset-filter f"{os-arch}.*gz$")
333
+
334
+ (repo "dundee/gdu"
335
+ :asset-filter os-arch)
336
+
337
+ (repo "ogham/dog"
338
+ :asset-filter f"{rust}.*zip")
339
+
340
+ (repo "latex-lsp/texlab"
341
+ :asset-filter f"{my-arch}-{my-os}")
342
+
343
+ (repo "filebrowser/filebrowser"
344
+ :asset-filter os-arch)
345
+
346
+ (repo "cantino/mcfly"
347
+ :asset-filter rust)
348
+
349
+ (repo "zellij-org/zellij"
350
+ :asset-filter rust)
351
+
352
+ (repo "sharkdp/bat"
353
+ :asset-filter rust)
354
+
355
+ (repo "sharkdp/fd"
356
+ :asset-filter rust)
357
+
358
+ (repo "nektos/act"
359
+ :asset-filter os-arch)
360
+
361
+ (repo "ClementTsang/bottom"
362
+ :name "btm"
363
+ :asset-filter f"{rust}.*?\\.tar\\.gz$")
364
+
365
+ (repo "Yvee1/hascard"
366
+ :asset-filter my-os
367
+ :pin "x86_64")
368
+
369
+ (repo "suntong/cascadia"
370
+ :asset-filter f"{os-arch}.*tar\\.gz$")
371
+
372
+ (repo "mattn/efm-langserver"
373
+ :asset-filter os-arch)
374
+
375
+ (repo "dominikh/go-tools"
376
+ :name "staticcheck"
377
+ :asset-filter os-arch)
378
+
379
+ (repo "benbjohnson/litestream"
380
+ :asset-filter f"{os-arch}\\.tar\\.gz$")
381
+
382
+ (repo "haampie/libtree"
383
+ :asset-filter f"{my-arch}$")
384
+
385
+ (repo "ivaaaan/smug"
386
+ :asset-filter os-arch)
387
+
388
+ (repo "authelia/authelia"
389
+ :asset-filter os-arch)
390
+
391
+ (repo "ory/kratos"
392
+ :prerelease True
393
+ :asset-filter f"{my-os}_sqlite_{arch-pattern}")
394
+
395
+ (repo "timothyYe/godns"
396
+ :asset-filter os-arch)
397
+
398
+ (repo "LukeChannings/deno-arm64"
399
+ :name "deno"
400
+ :pin "aarch64"
401
+ :asset-filter "deno")
402
+
403
+ (repo "Orange-OpenSource/hurl"
404
+ :basename-glob "hurl"
405
+ :asset-filter rust)
406
+
407
+ (repo "tailwindlabs/tailwindcss"
408
+ :asset-filter os-arch
409
+ :strip False)
410
+
411
+ (repo "boyter/scc"
412
+ :asset-filter os-arch)
413
+
414
+ (repo "aristocratos/btop"
415
+ :asset-filter f"{arch-pattern}-{my-os}-musl")
416
+
417
+ (repo "umputun/remark42"
418
+ :asset-filter os-arch)
419
+
420
+ (repo "thedodd/trunk"
421
+ :pin "x86_64"
422
+ :asset-filter rust)
423
+
424
+ (repo "supabase/cli"
425
+ :name "supabase"
426
+ :asset-filter f"{os-arch}.*gz$")
427
+
428
+ (repo "mgdm/htmlq"
429
+ :pin "x86_64"
430
+ :asset-filter f"{my-arch}-{my-os}\\.tar\\.gz")
431
+
432
+ (repo "xyproto/algernon"
433
+ :asset-filter os-arch)
434
+
435
+ (repo "syncthing/syncthing"
436
+ :asset-filter os-arch)
437
+
438
+ (repo "Wilfred/difftastic"
439
+ :name "difft"
440
+ :asset-filter rust)
441
+
442
+ (repo "terrastruct/d2"
443
+ :asset-filter os-arch)
444
+
445
+ (repo "sigoden/dufs"
446
+ :asset-filter rust)
447
+
448
+ (repo "slashbaseide/slashbase"
449
+ :name "Slashbase"
450
+ :pin "x86_64"
451
+ :asset-filter "linux_amd64")
452
+
453
+ (repo "jdxcode/rtx"
454
+ :asset-filter os-arch)
455
+
456
+ (repo "PostgREST/postgrest"
457
+ :asset-filter "linux-static"
458
+ :pin "x86_64")
459
+
460
+ (repo "rust-cross/cargo-zigbuild"
461
+ :asset-filter f"{rust}.*gz$")
462
+
463
+ (repo "netbirdio/netbird"
464
+ :asset-filter f"netbird_.*{os-arch}\\.tar\\.gz")
465
+
466
+ (repo "jetpack-io/devbox"
467
+ :asset-filter os-arch)
468
+
469
+ (repo "charliermarsh/ruff"
470
+ :asset-filter f"{rust}-musl\\.tar\\.gz$")
471
+
472
+ (repo "chiselstrike/homebrew-tap"
473
+ :name "turso"
474
+ :asset-filter os-arch)
475
+
476
+ (repo "amacneil/dbmate"
477
+ :asset-filter os-arch)
478
+
479
+ (repo "noisetorch/NoiseTorch"
480
+ :pin "x86_64"
481
+ :asset-filter f"{arch-pattern}.*tgz$")
482
+
483
+ (repo "slint-ui/slint"
484
+ :name "slint-lsp"
485
+ :pin "x86_64"
486
+ :asset-filter f"lsp-{my-os}")
487
+
488
+ (repo "watchexec/cargo-watch"
489
+ :asset-filter f"{rust}.*?\\.tar\\.xz$")
490
+
491
+ (repo "DarthSim/overmind"
492
+ :asset-filter f"{os-arch}\\.gz$")
493
+
494
+ (repo "AmrDeveloper/GQL"
495
+ :asset-filter f"{rust}\\.gz$")
496
+
497
+ (repo "mr-karan/doggo"
498
+ :basename-glob "doggo"
499
+ :asset-filter os-arch)
500
+
501
+ (repo "rustic-rs/rustic"
502
+ :asset-filter f"{rust}\\-musl\\.tar\\.gz$")
503
+
504
+ (repo "eza-community/eza"
505
+ :asset-filter rust)
506
+
507
+ (repo "antonmedv/fx"
508
+ :asset-filter os-arch)
509
+
510
+ (repo "replydev/cotp"
511
+ :asset-filter rust)
512
+
513
+ (repo "orhun/kmon"
514
+ :asset-filter f"{rust}-musl\\.tar\\.gz$")
515
+
516
+ (repo "biomejs/biome"
517
+ :release-filter "\\bCLI\\b"
518
+ :asset-filter f"{os-arch}")
519
+
520
+ (repo "dnote/dnote"
521
+ :release-filter "cli\\-"
522
+ :asset-filter os-arch)
523
+
524
+ (repo "yamafaktory/jql"
525
+ :asset-filter rust)
526
+
527
+ (repo "01mf02/jaq"
528
+ :asset-filter rust)
529
+
530
+ (repo "shuttle-hq/shuttle"
531
+ :asset-filter f"{rust}-musl")
ghdl-0.4.10/uv.lock ADDED
@@ -0,0 +1,249 @@
1
+ version = 1
2
+ requires-python = ">=3.8, <3.14"
3
+ resolution-markers = [
4
+ "python_full_version >= '3.9'",
5
+ "python_full_version < '3.9'",
6
+ ]
7
+
8
+ [[package]]
9
+ name = "anyio"
10
+ version = "4.5.2"
11
+ source = { registry = "https://pypi.org/simple" }
12
+ resolution-markers = [
13
+ "python_full_version < '3.9'",
14
+ ]
15
+ dependencies = [
16
+ { name = "exceptiongroup", marker = "python_full_version < '3.9'" },
17
+ { name = "idna", marker = "python_full_version < '3.9'" },
18
+ { name = "sniffio", marker = "python_full_version < '3.9'" },
19
+ { name = "typing-extensions", marker = "python_full_version < '3.9'" },
20
+ ]
21
+ sdist = { url = "https://files.pythonhosted.org/packages/4d/f9/9a7ce600ebe7804daf90d4d48b1c0510a4561ddce43a596be46676f82343/anyio-4.5.2.tar.gz", hash = "sha256:23009af4ed04ce05991845451e11ef02fc7c5ed29179ac9a420e5ad0ac7ddc5b", size = 171293 }
22
+ wheels = [
23
+ { url = "https://files.pythonhosted.org/packages/1b/b4/f7e396030e3b11394436358ca258a81d6010106582422f23443c16ca1873/anyio-4.5.2-py3-none-any.whl", hash = "sha256:c011ee36bc1e8ba40e5a81cb9df91925c218fe9b778554e0b56a21e1b5d4716f", size = 89766 },
24
+ ]
25
+
26
+ [[package]]
27
+ name = "anyio"
28
+ version = "4.7.0"
29
+ source = { registry = "https://pypi.org/simple" }
30
+ resolution-markers = [
31
+ "python_full_version >= '3.9'",
32
+ ]
33
+ dependencies = [
34
+ { name = "exceptiongroup", marker = "python_full_version >= '3.9' and python_full_version < '3.11'" },
35
+ { name = "idna", marker = "python_full_version >= '3.9'" },
36
+ { name = "sniffio", marker = "python_full_version >= '3.9'" },
37
+ { name = "typing-extensions", marker = "python_full_version >= '3.9' and python_full_version < '3.13'" },
38
+ ]
39
+ sdist = { url = "https://files.pythonhosted.org/packages/f6/40/318e58f669b1a9e00f5c4453910682e2d9dd594334539c7b7817dabb765f/anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48", size = 177076 }
40
+ wheels = [
41
+ { url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352", size = 93052 },
42
+ ]
43
+
44
+ [[package]]
45
+ name = "astor"
46
+ version = "0.8.1"
47
+ source = { registry = "https://pypi.org/simple" }
48
+ sdist = { url = "https://files.pythonhosted.org/packages/5a/21/75b771132fee241dfe601d39ade629548a9626d1d39f333fde31bc46febe/astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e", size = 35090 }
49
+ wheels = [
50
+ { url = "https://files.pythonhosted.org/packages/c3/88/97eef84f48fa04fbd6750e62dcceafba6c63c81b7ac1420856c8dcc0a3f9/astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5", size = 27488 },
51
+ ]
52
+
53
+ [[package]]
54
+ name = "certifi"
55
+ version = "2024.12.14"
56
+ source = { registry = "https://pypi.org/simple" }
57
+ sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 }
58
+ wheels = [
59
+ { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 },
60
+ ]
61
+
62
+ [[package]]
63
+ name = "docopt"
64
+ version = "0.6.2"
65
+ source = { registry = "https://pypi.org/simple" }
66
+ sdist = { url = "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491", size = 25901 }
67
+
68
+ [[package]]
69
+ name = "exceptiongroup"
70
+ version = "1.2.2"
71
+ source = { registry = "https://pypi.org/simple" }
72
+ sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883 }
73
+ wheels = [
74
+ { url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453 },
75
+ ]
76
+
77
+ [[package]]
78
+ name = "funcparserlib"
79
+ version = "1.0.1"
80
+ source = { registry = "https://pypi.org/simple" }
81
+ sdist = { url = "https://files.pythonhosted.org/packages/93/44/a21dfd9c45ad6909257e5186378a4fedaf41406824ce1ec06bc2a6c168e7/funcparserlib-1.0.1.tar.gz", hash = "sha256:a2c4a0d7942f7a0e7635c369d921066c8d4cae7f8b5bf7914466bec3c69837f4", size = 17238 }
82
+ wheels = [
83
+ { url = "https://files.pythonhosted.org/packages/83/66/acd740d84f59c655935f586c113a863aa404dfe932052a68a1163d88ea63/funcparserlib-1.0.1-py2.py3-none-any.whl", hash = "sha256:95da15d3f0d00b9b6f4bf04005c708af3faa115f7b45692ace064ebe758c68e8", size = 17842 },
84
+ ]
85
+
86
+ [[package]]
87
+ name = "ghdl"
88
+ version = "0.4.10"
89
+ source = { editable = "." }
90
+ dependencies = [
91
+ { name = "docopt" },
92
+ { name = "httpx" },
93
+ { name = "hy" },
94
+ { name = "hyrule" },
95
+ { name = "python-dateutil" },
96
+ { name = "python-magic" },
97
+ { name = "xdg" },
98
+ { name = "xtract" },
99
+ ]
100
+
101
+ [package.metadata]
102
+ requires-dist = [
103
+ { name = "docopt", specifier = ">=0.6.2" },
104
+ { name = "httpx", specifier = ">=0.27.0" },
105
+ { name = "hy", specifier = ">=1.0.0" },
106
+ { name = "hyrule", specifier = ">=0.7.0" },
107
+ { name = "python-dateutil", specifier = ">=2.8.1" },
108
+ { name = "python-magic", specifier = ">=0.4.25" },
109
+ { name = "xdg", specifier = ">=4.0.1" },
110
+ { name = "xtract", specifier = "==0.1a3" },
111
+ ]
112
+
113
+ [package.metadata.requires-dev]
114
+ dev = []
115
+
116
+ [[package]]
117
+ name = "h11"
118
+ version = "0.14.0"
119
+ source = { registry = "https://pypi.org/simple" }
120
+ sdist = { url = "https://files.pythonhosted.org/packages/f5/38/3af3d3633a34a3316095b39c8e8fb4853a28a536e55d347bd8d8e9a14b03/h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", size = 100418 }
121
+ wheels = [
122
+ { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 },
123
+ ]
124
+
125
+ [[package]]
126
+ name = "httpcore"
127
+ version = "1.0.7"
128
+ source = { registry = "https://pypi.org/simple" }
129
+ dependencies = [
130
+ { name = "certifi" },
131
+ { name = "h11" },
132
+ ]
133
+ sdist = { url = "https://files.pythonhosted.org/packages/6a/41/d7d0a89eb493922c37d343b607bc1b5da7f5be7e383740b4753ad8943e90/httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c", size = 85196 }
134
+ wheels = [
135
+ { url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 },
136
+ ]
137
+
138
+ [[package]]
139
+ name = "httpx"
140
+ version = "0.28.1"
141
+ source = { registry = "https://pypi.org/simple" }
142
+ dependencies = [
143
+ { name = "anyio", version = "4.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
144
+ { name = "anyio", version = "4.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
145
+ { name = "certifi" },
146
+ { name = "httpcore" },
147
+ { name = "idna" },
148
+ ]
149
+ sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 }
150
+ wheels = [
151
+ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 },
152
+ ]
153
+
154
+ [[package]]
155
+ name = "hy"
156
+ version = "1.0.0"
157
+ source = { registry = "https://pypi.org/simple" }
158
+ dependencies = [
159
+ { name = "astor", marker = "python_full_version < '3.9'" },
160
+ { name = "funcparserlib" },
161
+ ]
162
+ sdist = { url = "https://files.pythonhosted.org/packages/ab/7f/f8061ae737f6a564c3d4f80287bd5ff46afc1f606617a9cb5c797e6a974a/hy-1.0.0.tar.gz", hash = "sha256:3a00013e075ff5ce8f5d475ca2be47e4c871f09184ba3533787cb544d32d1f9e", size = 121792 }
163
+
164
+ [[package]]
165
+ name = "hyrule"
166
+ version = "0.7.0"
167
+ source = { registry = "https://pypi.org/simple" }
168
+ dependencies = [
169
+ { name = "hy" },
170
+ ]
171
+ sdist = { url = "https://files.pythonhosted.org/packages/59/f6/55dbed29f7b16b393d5aba61bd69762cc836089e1ff922779b09f7dd8827/hyrule-0.7.0.tar.gz", hash = "sha256:3a4b3568abfe16d16895e584c0db84c1251d258fe234ba86f072906b90545ce8", size = 32955 }
172
+
173
+ [[package]]
174
+ name = "idna"
175
+ version = "3.10"
176
+ source = { registry = "https://pypi.org/simple" }
177
+ sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 }
178
+ wheels = [
179
+ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
180
+ ]
181
+
182
+ [[package]]
183
+ name = "python-dateutil"
184
+ version = "2.9.0.post0"
185
+ source = { registry = "https://pypi.org/simple" }
186
+ dependencies = [
187
+ { name = "six" },
188
+ ]
189
+ sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 }
190
+ wheels = [
191
+ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 },
192
+ ]
193
+
194
+ [[package]]
195
+ name = "python-magic"
196
+ version = "0.4.27"
197
+ source = { registry = "https://pypi.org/simple" }
198
+ sdist = { url = "https://files.pythonhosted.org/packages/da/db/0b3e28ac047452d079d375ec6798bf76a036a08182dbb39ed38116a49130/python-magic-0.4.27.tar.gz", hash = "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b", size = 14677 }
199
+ wheels = [
200
+ { url = "https://files.pythonhosted.org/packages/6c/73/9f872cb81fc5c3bb48f7227872c28975f998f3e7c2b1c16e95e6432bbb90/python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3", size = 13840 },
201
+ ]
202
+
203
+ [[package]]
204
+ name = "six"
205
+ version = "1.17.0"
206
+ source = { registry = "https://pypi.org/simple" }
207
+ sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 }
208
+ wheels = [
209
+ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 },
210
+ ]
211
+
212
+ [[package]]
213
+ name = "sniffio"
214
+ version = "1.3.1"
215
+ source = { registry = "https://pypi.org/simple" }
216
+ sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 }
217
+ wheels = [
218
+ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
219
+ ]
220
+
221
+ [[package]]
222
+ name = "typing-extensions"
223
+ version = "4.12.2"
224
+ source = { registry = "https://pypi.org/simple" }
225
+ sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 }
226
+ wheels = [
227
+ { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
228
+ ]
229
+
230
+ [[package]]
231
+ name = "xdg"
232
+ version = "6.0.0"
233
+ source = { registry = "https://pypi.org/simple" }
234
+ sdist = { url = "https://files.pythonhosted.org/packages/2a/b9/0e6e6f19fb75cf5e1758f4f33c1256738f718966700cffc0fde2f966218b/xdg-6.0.0.tar.gz", hash = "sha256:24278094f2d45e846d1eb28a2ebb92d7b67fc0cab5249ee3ce88c95f649a1c92", size = 3453 }
235
+ wheels = [
236
+ { url = "https://files.pythonhosted.org/packages/dd/54/3516c1cf349060fc3578686d271eba242f10ec00b4530c2985af9faac49b/xdg-6.0.0-py3-none-any.whl", hash = "sha256:df3510755b4395157fc04fc3b02467c777f3b3ca383257397f09ab0d4c16f936", size = 3855 },
237
+ ]
238
+
239
+ [[package]]
240
+ name = "xtract"
241
+ version = "0.1a3"
242
+ source = { registry = "https://pypi.org/simple" }
243
+ dependencies = [
244
+ { name = "python-magic" },
245
+ ]
246
+ sdist = { url = "https://files.pythonhosted.org/packages/35/75/e5f69665d910be47838cb95bd534f7ca1c47faf47dec147533b94433a13d/xtract-0.1a3.tar.gz", hash = "sha256:1baac33be7494a106233e0db9de8d3ccc743635092a9b134641151c71bc322e3", size = 20926 }
247
+ wheels = [
248
+ { url = "https://files.pythonhosted.org/packages/37/74/2d74c59ae912dc9336d87e2ff16fa09c9d2f8b4abdd11c5c9d6770948add/xtract-0.1a3-py2.py3-none-any.whl", hash = "sha256:e085b268480f2123d1f7e25411a13721e987cfa064447afdbe895949cfe2899a", size = 13772 },
249
+ ]
@@ -1,12 +0,0 @@
1
- LICENSE
2
- MANIFEST.in
3
- pyproject.toml
4
- bin/ghdl
5
- bin/ghdl-delete-repo
6
- ghdl/__init__.py
7
- ghdl/config.hy
8
- ghdl/local.hy
9
- ghdl/main.hy
10
- ghdl/remote.hy
11
- ghdl/schema.hy
12
- ghdl/utils.hy
ghdl-0.4.9/setup.cfg DELETED
@@ -1,4 +0,0 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes