lambda-watcher 0.4.1__tar.gz → 0.5.0__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 (62) hide show
  1. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/PKG-INFO +1 -1
  2. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/pyproject.toml +1 -1
  3. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/__init__.py +1 -1
  4. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/cli.py +11 -3
  5. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/render_html.py +557 -268
  6. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/ingest.py +4 -2
  7. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher.egg-info/PKG-INFO +1 -1
  8. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/LICENSE +0 -0
  9. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/README.md +0 -0
  10. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/setup.cfg +0 -0
  11. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/__main__.py +0 -0
  12. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/__init__.py +0 -0
  13. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/deps.py +0 -0
  14. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/envvars.py +0 -0
  15. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/handler.py +0 -0
  16. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/inventory.py +0 -0
  17. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/runtime.py +0 -0
  18. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/secrets.py +0 -0
  19. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/analysis/services.py +0 -0
  20. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/config.py +0 -0
  21. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/db.py +0 -0
  22. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/demo.py +0 -0
  23. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/__init__.py +0 -0
  24. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/build.py +0 -0
  25. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/compare.py +0 -0
  26. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/highlight.py +0 -0
  27. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/icons.py +0 -0
  28. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/intraline.py +0 -0
  29. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/diffing/render_text.py +0 -0
  30. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/extract.py +0 -0
  31. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/gitmirror.py +0 -0
  32. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/heartbeat.py +0 -0
  33. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/helptext.py +0 -0
  34. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/identify.py +0 -0
  35. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/notify.py +0 -0
  36. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/reindex.py +0 -0
  37. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/service.py +0 -0
  38. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/store.py +0 -0
  39. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/templates.py +0 -0
  40. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/utils.py +0 -0
  41. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher/watcher.py +0 -0
  42. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher.egg-info/SOURCES.txt +0 -0
  43. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher.egg-info/dependency_links.txt +0 -0
  44. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher.egg-info/entry_points.txt +0 -0
  45. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher.egg-info/requires.txt +0 -0
  46. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/src/lambda_watcher.egg-info/top_level.txt +0 -0
  47. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_analysis.py +0 -0
  48. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_cli.py +0 -0
  49. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_config.py +0 -0
  50. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_diff.py +0 -0
  51. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_docs.py +0 -0
  52. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_extract.py +0 -0
  53. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_heartbeat.py +0 -0
  54. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_helptext.py +0 -0
  55. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_identify.py +0 -0
  56. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_ingest.py +0 -0
  57. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_no_window.py +0 -0
  58. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_reindex.py +0 -0
  59. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_render_html.py +0 -0
  60. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_service.py +0 -0
  61. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_utils.py +0 -0
  62. {lambda_watcher-0.4.1 → lambda_watcher-0.5.0}/tests/test_watcher.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lambda-watcher
3
- Version: 0.4.1
3
+ Version: 0.5.0
4
4
  Summary: Watch your Downloads folder for AWS Lambda deployment zips, archive them as versions, analyse them, and diff any two versions.
5
5
  Author: Lambda Watcher contributors
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "lambda-watcher"
7
- version = "0.4.1"
7
+ version = "0.5.0"
8
8
  description = "Watch your Downloads folder for AWS Lambda deployment zips, archive them as versions, analyse them, and diff any two versions."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -1,4 +1,4 @@
1
1
  """Watch a downloads folder for AWS Lambda deployment packages and version them."""
2
2
 
3
- __version__ = "0.4.1"
3
+ __version__ = "0.5.0"
4
4
  __all__ = ["__version__"]
@@ -1503,7 +1503,11 @@ def diff(
1503
1503
  target = Path(output).expanduser() if output else (
1504
1504
  cfg.reports_dir / f"{slugify(row['name'])}-v{a_seq:04d}-v{b_seq:04d}.html"
1505
1505
  )
1506
- write_html(result, target)
1506
+ # --output can put the page anywhere, so the top bar links the archive
1507
+ # index only when the page sits beside it in reports/.
1508
+ archive_index = cfg.reports_dir / "index.html"
1509
+ write_html(result, target,
1510
+ archive_href="index.html" if output is None and archive_index.exists() else None)
1507
1511
  console.print(f"[green]wrote[/green] {target}")
1508
1512
  if open_report and not _open_in_browser(target):
1509
1513
  err_console.print("[yellow]could not find a browser to show it in; "
@@ -1616,6 +1620,9 @@ def report(
1616
1620
 
1617
1621
  entries: list[dict] = []
1618
1622
  seqs = [int(v["seq"]) for v in selected]
1623
+ # Under reports/<slug>/ the archive index is one level up, and the
1624
+ # _refresh_archive_index below writes it; --output leaves no such guarantee.
1625
+ archive_href = "../index.html" if output is None else None
1619
1626
  include_vendor = True if vendor else None
1620
1627
 
1621
1628
  for version in selected:
@@ -1635,13 +1642,14 @@ def report(
1635
1642
  a_seq = max(previous)
1636
1643
  pair = _build_diff(db, store, cfg, row, a_seq, seq, include_vendor)
1637
1644
  filename = f"v{a_seq:04d}-v{seq:04d}.html"
1638
- write_html(pair, target_dir / filename)
1645
+ write_html(pair, target_dir / filename, archive_href=archive_href,
1646
+ history_href="index.html")
1639
1647
  entry["diff_href"] = filename
1640
1648
  entry["diff_summary"] = pair.headline()
1641
1649
  entries.append(entry)
1642
1650
 
1643
1651
  index = target_dir / "index.html"
1644
- index.write_text(render_timeline(row["name"], entries), encoding="utf-8")
1652
+ index.write_text(render_timeline(row["name"], entries, archive_href=archive_href), encoding="utf-8")
1645
1653
  console.print(f"[green]wrote[/green] {index} [dim]({len(entries)} versions)[/dim]")
1646
1654
  if output is None:
1647
1655
  _refresh_archive_index(cfg, db)