driverclient 0.2.30__tar.gz → 0.2.31__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.
- {driverclient-0.2.30 → driverclient-0.2.31}/PKG-INFO +1 -1
- {driverclient-0.2.30 → driverclient-0.2.31}/pyproject.toml +1 -1
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/__init__.py +1 -1
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/download.py +1 -19
- {driverclient-0.2.30 → driverclient-0.2.31}/.gitignore +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/README.md +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/__main__.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/config.json +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/config.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/core/__init__.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/core/hardware.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/core/http.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/core/hwid.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/core/proc.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/events.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/main.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/__init__.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/automate.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/capture.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/diagnose.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/install.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/offline.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/resolve.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/ops/scan.py +0 -0
- {driverclient-0.2.30 → driverclient-0.2.31}/src/driverclient/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: driverclient
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.31
|
|
4
4
|
Summary: Driver Server client with an embeddable connector for config injection at runtime.
|
|
5
5
|
Project-URL: Homepage, https://example.com/driverclient
|
|
6
6
|
Author-email: Raja Sanaullah <sanaullah@99technologies.com>
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "driverclient"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.31"
|
|
8
8
|
description = "Driver Server client with an embeddable connector for config injection at runtime."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -12,7 +12,6 @@ Factored out here so the two modes share one download implementation:
|
|
|
12
12
|
• download_drivers() — fan the above out across a driver list in parallel
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
-
import shutil
|
|
16
15
|
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
17
16
|
from pathlib import Path
|
|
18
17
|
|
|
@@ -21,21 +20,7 @@ from driverclient.core.http import http_download_retry
|
|
|
21
20
|
|
|
22
21
|
def download_driver(driver: dict, base: Path, repo_url: str, cfg: dict) -> tuple[Path, bool]:
|
|
23
22
|
"""Download all files for one driver into base/<binding_id>/.
|
|
24
|
-
Returns (dest_dir, success). success is False if ANY file failed.
|
|
25
|
-
|
|
26
|
-
On failure, dest is removed before returning. The live install path stages
|
|
27
|
-
every driver under one shared `base` and installs it with a single batched
|
|
28
|
-
`pnputil /add-driver base\\*.inf /subdirs` — that command globs the
|
|
29
|
-
filesystem directly, so a driver this function reports as failed (and the
|
|
30
|
-
caller correctly excludes from the install list) would otherwise still
|
|
31
|
-
leave its already-downloaded files (commonly just the small .inf, if a
|
|
32
|
-
large companion .sys/.dll timed out) sitting under base/<binding_id>/ for
|
|
33
|
-
pnputil to find anyway. pnputil then tries to add that incomplete package —
|
|
34
|
-
"cannot find the file specified" for its missing payload — which large
|
|
35
|
-
graphics drivers hit most often (biggest files, likeliest to time out
|
|
36
|
-
partway), and can poison the whole batched pass for the OTHER, fully
|
|
37
|
-
downloaded drivers riding in the same pnputil call.
|
|
38
|
-
"""
|
|
23
|
+
Returns (dest_dir, success). success is False if ANY file failed."""
|
|
39
24
|
bid = driver.get("binding_id") or driver.get("package_id", "")
|
|
40
25
|
pkg_id = driver["package_id"]
|
|
41
26
|
dest = base / bid
|
|
@@ -51,9 +36,6 @@ def download_driver(driver: dict, base: Path, repo_url: str, cfg: dict) -> tuple
|
|
|
51
36
|
if not http_download_retry(url, path, f["sha256"], timeout=cfg["timeout_long"]):
|
|
52
37
|
ok = False
|
|
53
38
|
|
|
54
|
-
if not ok:
|
|
55
|
-
shutil.rmtree(dest, ignore_errors=True)
|
|
56
|
-
|
|
57
39
|
return dest, ok
|
|
58
40
|
|
|
59
41
|
|
|
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
|
|
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
|
|
File without changes
|