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.
Files changed (25) hide show
  1. {skillnav-0.4.2 → skillnav-0.4.3}/PKG-INFO +1 -1
  2. {skillnav-0.4.2 → skillnav-0.4.3}/pyproject.toml +1 -1
  3. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/__init__.py +1 -1
  4. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/cli.py +2 -2
  5. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/self_update.py +26 -2
  6. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/PKG-INFO +1 -1
  7. {skillnav-0.4.2 → skillnav-0.4.3}/README.md +0 -0
  8. {skillnav-0.4.2 → skillnav-0.4.3}/setup.cfg +0 -0
  9. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/__main__.py +0 -0
  10. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/api.py +0 -0
  11. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/config.py +0 -0
  12. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/context.py +0 -0
  13. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/contributors.py +0 -0
  14. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/error_hints.py +0 -0
  15. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/errors.py +0 -0
  16. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/output.py +0 -0
  17. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/packages.py +0 -0
  18. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/publish_metadata.py +0 -0
  19. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/skill_categories.py +0 -0
  20. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav/urls.py +0 -0
  21. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/SOURCES.txt +0 -0
  22. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/dependency_links.txt +0 -0
  23. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/entry_points.txt +0 -0
  24. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/requires.txt +0 -0
  25. {skillnav-0.4.2 → skillnav-0.4.3}/src/skillnav.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skillnav
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: CLI client for the Skill management platform (SkillNavigator)
5
5
  License: Apache-2.0
6
6
  Keywords: skill,cli,agent,registry
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "skillnav"
7
- version = "0.4.2"
7
+ version = "0.4.3"
8
8
  description = "CLI client for the Skill management platform (SkillNavigator)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,3 +1,3 @@
1
1
  """skillnav — CLI client for the Skill management platform (SkillNavigator)."""
2
2
 
3
- __version__ = "0.4.2"
3
+ __version__ = "0.4.3"
@@ -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
- Optional[bool],
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
- ] = None,
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=status.current,
161
+ current=installed,
138
162
  latest=status.latest,
139
- up_to_date=False,
163
+ up_to_date=True,
140
164
  updated=True,
141
165
  )
142
166
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skillnav
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: CLI client for the Skill management platform (SkillNavigator)
5
5
  License: Apache-2.0
6
6
  Keywords: skill,cli,agent,registry
File without changes
File without changes
File without changes
File without changes