mcli-framework 7.0.2__py3-none-any.whl → 7.0.3__py3-none-any.whl

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.

Potentially problematic release.


This version of mcli-framework might be problematic. Click here for more details.

mcli/self/self_cmd.py CHANGED
@@ -1129,11 +1129,53 @@ def dashboard(refresh: float, once: bool):
1129
1129
  console.print(f"[red]Error launching dashboard: {e}[/red]")
1130
1130
 
1131
1131
 
1132
+ def check_ci_status(version: str) -> tuple[bool, Optional[str]]:
1133
+ """
1134
+ Check GitHub Actions CI status for the main branch.
1135
+ Returns (passing, url) tuple.
1136
+ """
1137
+ try:
1138
+ import requests
1139
+
1140
+ response = requests.get(
1141
+ "https://api.github.com/repos/gwicho38/mcli/actions/runs",
1142
+ params={"per_page": 5},
1143
+ headers={
1144
+ "Accept": "application/vnd.github.v3+json",
1145
+ "User-Agent": "mcli-cli"
1146
+ },
1147
+ timeout=10
1148
+ )
1149
+
1150
+ if response.status_code == 200:
1151
+ data = response.json()
1152
+ runs = data.get("workflow_runs", [])
1153
+
1154
+ # Find the most recent completed run for main branch
1155
+ main_runs = [
1156
+ run for run in runs
1157
+ if run.get("head_branch") == "main" and run.get("status") == "completed"
1158
+ ]
1159
+
1160
+ if main_runs:
1161
+ latest_run = main_runs[0]
1162
+ passing = latest_run.get("conclusion") == "success"
1163
+ url = latest_run.get("html_url")
1164
+ return (passing, url)
1165
+
1166
+ # If we can't check CI, don't block the update
1167
+ return (True, None)
1168
+ except Exception:
1169
+ # On error, don't block the update
1170
+ return (True, None)
1171
+
1172
+
1132
1173
  @self_app.command()
1133
1174
  @click.option("--check", is_flag=True, help="Only check for updates, don't install")
1134
1175
  @click.option("--pre", is_flag=True, help="Include pre-release versions")
1135
1176
  @click.option("--yes", "-y", is_flag=True, help="Skip confirmation prompt")
1136
- def update(check: bool, pre: bool, yes: bool):
1177
+ @click.option("--skip-ci-check", is_flag=True, help="Skip CI status check and install anyway")
1178
+ def update(check: bool, pre: bool, yes: bool, skip_ci_check: bool):
1137
1179
  """🔄 Check for and install mcli updates from PyPI"""
1138
1180
  import subprocess
1139
1181
  import sys
@@ -1215,6 +1257,21 @@ def update(check: bool, pre: bool, yes: bool):
1215
1257
  console.print("[yellow]Update cancelled[/yellow]")
1216
1258
  return
1217
1259
 
1260
+ # Check CI status before installing (unless skipped)
1261
+ if not skip_ci_check:
1262
+ console.print("[cyan]🔍 Checking CI status...[/cyan]")
1263
+ ci_passing, ci_url = check_ci_status(latest_version)
1264
+
1265
+ if not ci_passing:
1266
+ console.print("[red]✗ CI build is failing for the latest version[/red]")
1267
+ if ci_url:
1268
+ console.print(f"[yellow] View CI status: {ci_url}[/yellow]")
1269
+ console.print("[yellow]⚠️ Update blocked to prevent installing a broken version[/yellow]")
1270
+ console.print("[dim] Use --skip-ci-check to install anyway (not recommended)[/dim]")
1271
+ return
1272
+ else:
1273
+ console.print("[green]✓ CI build is passing[/green]")
1274
+
1218
1275
  # Install update
1219
1276
  console.print(f"[cyan]📦 Installing mcli {latest_version}...[/cyan]")
1220
1277
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.0.2
3
+ Version: 7.0.3
4
4
  Summary: 🚀 High-performance CLI framework with Rust extensions, AI chat, and stunning visuals
5
5
  Author-email: Luis Fernandez de la Vara <luis@lefv.io>
6
6
  Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
@@ -159,7 +159,7 @@ mcli/public/public.py,sha256=t9BkO1XV7s3YcoH0bbIpyjZ05UX_vBjaKtKkuDX7wZ0,114
159
159
  mcli/public/commands/__init__.py,sha256=0WGm1i4t1uifkC_5FmbQ2r03q53yrZ3KnoWOd2M7dEA,103
160
160
  mcli/public/oi/oi.py,sha256=SQabQWQ1pE67pWYEHwIDc3R93DARJfB6VHk7qxWx9xo,308
161
161
  mcli/self/__init__.py,sha256=7hCrgaRb4oAgAf-kcyzqhJ5LFpW19jwF5bxowR4LwjY,41
162
- mcli/self/self_cmd.py,sha256=2fSPHKVHZKIIjTvLGJJY8oCeqk2vjOlD3vx1HlXjqi0,45315
162
+ mcli/self/self_cmd.py,sha256=FM7LqGi3ZXRZCjFBhxIMRce_--8L7GT2UjH3sgKP3UI,47491
163
163
  mcli/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
164
  mcli/workflow/lsh_integration.py,sha256=khwmMPsdYdkmmLxlZi_UqUo2p0Nf-6GF6PPbtOrmoYQ,13290
165
165
  mcli/workflow/workflow.py,sha256=t58OVXmU9uQCJnyXuIbMAm8lihSzJ_jI10vXPNpZspk,928
@@ -236,9 +236,9 @@ mcli/workflow/videos/__init__.py,sha256=aV3DEoO7qdKJY4odWKoQbOKDQq4ludTeCLnZcupO
236
236
  mcli/workflow/videos/videos.py,sha256=C47ViVv6qqqkSKQz6YXjzhok4UrqFbya8w5k_x7hToM,8360
237
237
  mcli/workflow/wakatime/__init__.py,sha256=wKG8cVIHVtMPhNRFGFtX43bRnocHqOMMkFMkmW-M6pU,2626
238
238
  mcli/workflow/wakatime/wakatime.py,sha256=sEjsUKa3-XyE8Ni6sAb_D3GAY5jDcA30KknW9YTbLTA,142
239
- mcli_framework-7.0.2.dist-info/licenses/LICENSE,sha256=sahwAMfrJv2-V66HNPTp7A9UmMjxtyejwTZZoWQvEcI,1075
240
- mcli_framework-7.0.2.dist-info/METADATA,sha256=blFNu-3EttjtzqQq1HXC2-KL1S_NoidkRLUx7Ds0y5I,14307
241
- mcli_framework-7.0.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
242
- mcli_framework-7.0.2.dist-info/entry_points.txt,sha256=dYrZbDIm-KUPsl1wfv600Kx_8sMy89phMkCihbDRgP8,261
243
- mcli_framework-7.0.2.dist-info/top_level.txt,sha256=_bnO8J2EUkliWivey_1le0UrnocFKmyVMQjbQ8iVXjc,5
244
- mcli_framework-7.0.2.dist-info/RECORD,,
239
+ mcli_framework-7.0.3.dist-info/licenses/LICENSE,sha256=sahwAMfrJv2-V66HNPTp7A9UmMjxtyejwTZZoWQvEcI,1075
240
+ mcli_framework-7.0.3.dist-info/METADATA,sha256=T2hlb-nQrSmCvzSNg6QcRYrpEGJYyGjW6LUHvL6JbIs,14307
241
+ mcli_framework-7.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
242
+ mcli_framework-7.0.3.dist-info/entry_points.txt,sha256=dYrZbDIm-KUPsl1wfv600Kx_8sMy89phMkCihbDRgP8,261
243
+ mcli_framework-7.0.3.dist-info/top_level.txt,sha256=_bnO8J2EUkliWivey_1le0UrnocFKmyVMQjbQ8iVXjc,5
244
+ mcli_framework-7.0.3.dist-info/RECORD,,