skillnav 0.4.2__tar.gz → 0.4.3__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.
- {skillnav-0.4.2 → skillnav-0.4.3}/PKG-INFO +1 -1
- {skillnav-0.4.2 → skillnav-0.4.3}/pyproject.toml +1 -1
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/__init__.py +1 -1
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/cli.py +2 -2
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/self_update.py +26 -2
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/PKG-INFO +1 -1
- {skillnav-0.4.2 → skillnav-0.4.3}/README.md +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/setup.cfg +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/__main__.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/api.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/config.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/context.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/contributors.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/error_hints.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/errors.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/output.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/packages.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/publish_metadata.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/skill_categories.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/urls.py +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/SOURCES.txt +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/dependency_links.txt +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/entry_points.txt +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/requires.txt +0 -0
- {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/top_level.txt +0 -0
|
@@ -144,7 +144,7 @@ def cli_root(
|
|
|
144
144
|
bool, typer.Option("--no-input", help="Never prompt; fail when input is required")
|
|
145
145
|
] = False,
|
|
146
146
|
version: Annotated[
|
|
147
|
-
|
|
147
|
+
bool,
|
|
148
148
|
typer.Option(
|
|
149
149
|
"--version",
|
|
150
150
|
"-v",
|
|
@@ -152,7 +152,7 @@ def cli_root(
|
|
|
152
152
|
callback=_version_callback,
|
|
153
153
|
is_eager=True,
|
|
154
154
|
),
|
|
155
|
-
] =
|
|
155
|
+
] = False,
|
|
156
156
|
) -> None:
|
|
157
157
|
"""CLI client for the Skill management platform (SkillNavigator)."""
|
|
158
158
|
_state["ctx"] = CliContext.resolve(
|
|
@@ -89,6 +89,18 @@ def build_upgrade_command() -> list[str]:
|
|
|
89
89
|
return [sys.executable, "-m", "pip", "install", "--upgrade", "skillnav", "-i", PYPI_INSTALL_INDEX]
|
|
90
90
|
|
|
91
91
|
|
|
92
|
+
def read_installed_version() -> str:
|
|
93
|
+
try:
|
|
94
|
+
import importlib.metadata as importlib_metadata
|
|
95
|
+
except ImportError:
|
|
96
|
+
return __version__
|
|
97
|
+
|
|
98
|
+
try:
|
|
99
|
+
return importlib_metadata.version("skillnav")
|
|
100
|
+
except importlib_metadata.PackageNotFoundError:
|
|
101
|
+
return __version__
|
|
102
|
+
|
|
103
|
+
|
|
92
104
|
def run_upgrade_command() -> None:
|
|
93
105
|
command = build_upgrade_command()
|
|
94
106
|
try:
|
|
@@ -110,6 +122,14 @@ def run_upgrade_command() -> None:
|
|
|
110
122
|
raise SkillnavError(message)
|
|
111
123
|
|
|
112
124
|
|
|
125
|
+
def _upgrade_still_behind_message(installed: str, latest: str) -> str:
|
|
126
|
+
return (
|
|
127
|
+
f"Upgrade finished but skillnav {installed} is still older than PyPI {latest}. "
|
|
128
|
+
f"The install index may be out of sync. Retry with: "
|
|
129
|
+
f"{sys.executable} -m pip install --upgrade skillnav -i https://pypi.org/simple/"
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
|
|
113
133
|
def check_for_update(*, current: str | None = None) -> UpdateStatus:
|
|
114
134
|
current_version = current or __version__
|
|
115
135
|
latest_version = fetch_pypi_latest_version()
|
|
@@ -133,10 +153,14 @@ def perform_update(*, check_only: bool = False, current: str | None = None) -> U
|
|
|
133
153
|
)
|
|
134
154
|
|
|
135
155
|
run_upgrade_command()
|
|
156
|
+
installed = read_installed_version()
|
|
157
|
+
if compare_versions(installed, status.latest) < 0:
|
|
158
|
+
raise SkillnavError(_upgrade_still_behind_message(installed, status.latest))
|
|
159
|
+
|
|
136
160
|
return UpdateStatus(
|
|
137
|
-
current=
|
|
161
|
+
current=installed,
|
|
138
162
|
latest=status.latest,
|
|
139
|
-
up_to_date=
|
|
163
|
+
up_to_date=True,
|
|
140
164
|
updated=True,
|
|
141
165
|
)
|
|
142
166
|
|
|
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
|