memstack-skill-loader 3.5.0__tar.gz → 3.5.1__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.
- {memstack_skill_loader-3.5.0/src/memstack_skill_loader.egg-info → memstack_skill_loader-3.5.1}/PKG-INFO +1 -1
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/pyproject.toml +1 -1
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/version_check.py +16 -25
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1/src/memstack_skill_loader.egg-info}/PKG-INFO +1 -1
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/MANIFEST.in +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/README.md +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/setup.cfg +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/__init__.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/__main__.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/compression.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/config.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/dashboard.html +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/dashboard.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/indexer.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/license.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/search.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/server.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/stats.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/tfidf_search.py +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader.egg-info/SOURCES.txt +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader.egg-info/dependency_links.txt +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader.egg-info/entry_points.txt +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader.egg-info/requires.txt +0 -0
- {memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader.egg-info/top_level.txt +0 -0
|
@@ -1,28 +1,22 @@
|
|
|
1
|
-
"""Check for MemStack updates via
|
|
1
|
+
"""Check for MemStack updates via the PyPI JSON API."""
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
|
-
import os
|
|
5
4
|
import sys
|
|
6
5
|
import time
|
|
7
6
|
from pathlib import Path
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
PYPI_URL = "https://pypi.org/pypi/memstack-skill-loader/json"
|
|
10
9
|
CACHE_FILE = Path.home() / ".memstack" / "version-check.json"
|
|
11
|
-
CACHE_TTL = 86400 # 24 hours
|
|
10
|
+
CACHE_TTL = 86400 # 24 hours
|
|
12
11
|
|
|
13
12
|
|
|
14
|
-
def
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
try:
|
|
22
|
-
return version_file.read_text(encoding="utf-8").strip()
|
|
23
|
-
except OSError:
|
|
24
|
-
return None
|
|
25
|
-
return None
|
|
13
|
+
def _get_local_version() -> str | None:
|
|
14
|
+
"""Get the installed package version via importlib.metadata."""
|
|
15
|
+
try:
|
|
16
|
+
from importlib.metadata import version
|
|
17
|
+
return version("memstack-skill-loader")
|
|
18
|
+
except Exception:
|
|
19
|
+
return None
|
|
26
20
|
|
|
27
21
|
|
|
28
22
|
def _read_cache() -> dict | None:
|
|
@@ -51,32 +45,30 @@ def _write_cache(remote_version: str) -> None:
|
|
|
51
45
|
|
|
52
46
|
|
|
53
47
|
def check_for_updates() -> None:
|
|
54
|
-
"""Check
|
|
48
|
+
"""Check PyPI for a newer MemStack version. Prints to stderr if update available."""
|
|
55
49
|
try:
|
|
56
|
-
local_version =
|
|
50
|
+
local_version = _get_local_version()
|
|
57
51
|
if not local_version:
|
|
58
52
|
return
|
|
59
53
|
|
|
60
|
-
# Check cache first
|
|
61
54
|
cached = _read_cache()
|
|
62
55
|
if cached:
|
|
63
56
|
remote_version = cached.get("remote_version", "")
|
|
64
57
|
if remote_version and remote_version != local_version:
|
|
65
58
|
print(
|
|
66
59
|
f"[memstack] Update available: {remote_version} (you have {local_version}). "
|
|
67
|
-
f"Run
|
|
60
|
+
f"Run: pip install memstack-skill-loader --upgrade",
|
|
68
61
|
file=sys.stderr,
|
|
69
62
|
)
|
|
70
63
|
return
|
|
71
64
|
|
|
72
|
-
# Fetch from GitHub API
|
|
73
65
|
import httpx
|
|
74
|
-
response = httpx.get(
|
|
66
|
+
response = httpx.get(PYPI_URL, timeout=5.0, follow_redirects=True)
|
|
75
67
|
if response.status_code != 200:
|
|
76
68
|
return
|
|
77
69
|
|
|
78
70
|
data = response.json()
|
|
79
|
-
remote_version = data.get("
|
|
71
|
+
remote_version = data.get("info", {}).get("version", "")
|
|
80
72
|
if not remote_version:
|
|
81
73
|
return
|
|
82
74
|
|
|
@@ -85,9 +77,8 @@ def check_for_updates() -> None:
|
|
|
85
77
|
if remote_version != local_version:
|
|
86
78
|
print(
|
|
87
79
|
f"[memstack] Update available: {remote_version} (you have {local_version}). "
|
|
88
|
-
f"Run
|
|
80
|
+
f"Run: pip install memstack-skill-loader --upgrade",
|
|
89
81
|
file=sys.stderr,
|
|
90
82
|
)
|
|
91
83
|
except Exception:
|
|
92
|
-
# Silently skip on any error — never block skill loading
|
|
93
84
|
pass
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/__init__.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/__main__.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/compression.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/config.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/dashboard.html
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/dashboard.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/indexer.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/license.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/search.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/server.py
RENAMED
|
File without changes
|
{memstack_skill_loader-3.5.0 → memstack_skill_loader-3.5.1}/src/memstack_skill_loader/stats.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|