alissa-tools-github-revloop 0.31.28__tar.gz → 0.31.30__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 (41) hide show
  1. {alissa_tools_github_revloop-0.31.28/src/main/alissa_tools_github_revloop.egg-info → alissa_tools_github_revloop-0.31.30}/PKG-INFO +1 -1
  2. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/janitor.py +17 -7
  3. alissa_tools_github_revloop-0.31.30/src/main/alissa/tools/github/revloop/version +1 -0
  4. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30/src/main/alissa_tools_github_revloop.egg-info}/PKG-INFO +1 -1
  5. alissa_tools_github_revloop-0.31.28/src/main/alissa/tools/github/revloop/version +0 -1
  6. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/LICENSE +0 -0
  7. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/MANIFEST.in +0 -0
  8. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/NOTICE +0 -0
  9. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/README.md +0 -0
  10. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/requirements.txt +0 -0
  11. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/setup.cfg +0 -0
  12. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/setup.py +0 -0
  13. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/__init__.py +0 -0
  14. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/__main__.py +0 -0
  15. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/alissa.py +0 -0
  16. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/alissa_client.py +0 -0
  17. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/bows.py +0 -0
  18. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/config.py +0 -0
  19. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/fleet_vitals.py +0 -0
  20. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/ghclient.py +0 -0
  21. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/loop.py +0 -0
  22. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/loop_events.py +0 -0
  23. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/parking.py +0 -0
  24. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/proc.py +0 -0
  25. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/prompts.py +0 -0
  26. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/prreview.py +0 -0
  27. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/self_upgrade.py +0 -0
  28. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/state.py +0 -0
  29. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/trust.py +0 -0
  30. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/version.py +0 -0
  31. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/webui/__init__.py +0 -0
  32. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/webui/__main__.py +0 -0
  33. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/webui/auth.py +0 -0
  34. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/webui/page.py +0 -0
  35. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/webui/server.py +0 -0
  36. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/webui/sources.py +0 -0
  37. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa/tools/github/revloop/webui/sysinfo.py +0 -0
  38. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa_tools_github_revloop.egg-info/SOURCES.txt +0 -0
  39. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa_tools_github_revloop.egg-info/dependency_links.txt +0 -0
  40. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa_tools_github_revloop.egg-info/entry_points.txt +0 -0
  41. {alissa_tools_github_revloop-0.31.28 → alissa_tools_github_revloop-0.31.30}/src/main/alissa_tools_github_revloop.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-revloop
3
- Version: 0.31.28
3
+ Version: 0.31.30
4
4
  Summary: ALISSA-TOOLS-GITHUB-REVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera
@@ -147,9 +147,11 @@ class HeldWalk:
147
147
 
148
148
 
149
149
  # One held folder's cached size, by path: either a finished walk, as
150
- # (newest mtime, bytes, the sweep `now` the walk began at), or a `HeldWalk`
151
- # that the time budget cut short (issue #189).
152
- SizeCache = dict[Path, "tuple[float, int, float] | HeldWalk"]
150
+ # (newest mtime, bytes, the sweep `now` the walk began at, the sweep `now` it
151
+ # finished in), or a `HeldWalk` that the time budget cut short (issue #189).
152
+ # A finished walk that began before the sweep it finished in was cut short
153
+ # at least once (issue #197): its folder keeps a kept walk's place in line.
154
+ SizeCache = dict[Path, "tuple[float, int, float, float] | HeldWalk"]
153
155
 
154
156
  # The two reasons a hub-wide hold gives, so the sweep summary groups them.
155
157
  HUB_HOLD_BOUNDED = "a live round in this hub names no review task and spawned before this checkout"
@@ -763,6 +765,12 @@ def _size_held(
763
765
  starts over -- takes every sweep's leftover budget, and a younger kept
764
766
  walk never reads a directory.
765
767
 
768
+ A finished walk that was cut short keeps that place once its figure
769
+ expires (issue #197): it sorts with the kept walks, as last advanced in
770
+ the sweep it finished in, not ahead of the folders never cut short. Else
771
+ every kept walk's finish, an hour on, would buy one sweep in which its
772
+ restart takes the leftover budget from the younger folders in front.
773
+
766
774
  `sizes` is then re-keyed to this sweep's held folders: entries for gone
767
775
  folders drop out, and so do unsized folders whose walk never began."""
768
776
  previous = sizes or {}
@@ -771,6 +779,8 @@ def _size_held(
771
779
  kept = previous.get(item[1].path)
772
780
  if isinstance(kept, HeldWalk):
773
781
  return True, kept.advanced
782
+ if kept is not None and kept[2] < kept[3]:
783
+ return True, kept[3] # cut short, then finished (issue #197)
774
784
  return False, 0.0
775
785
 
776
786
  seen: SizeCache = {}
@@ -785,12 +795,12 @@ def _size_held(
785
795
  result.held_cached += 1
786
796
  result.held_bytes[key] = result.held_bytes.get(key, 0) + size
787
797
  continue
788
- resumable = isinstance(cached, HeldWalk)
798
+ long_walk, advanced = turn((mtime, candidate, key))
799
+ resumable = long_walk
789
800
  if isinstance(cached, HeldWalk) and cached.mtime == mtime:
790
801
  progress = cached
791
802
  else:
792
- progress = HeldWalk(mtime, now, 0, [os.fspath(candidate.path)],
793
- cached.advanced if isinstance(cached, HeldWalk) else 0.0)
803
+ progress = HeldWalk(mtime, now, 0, [os.fspath(candidate.path)], advanced)
794
804
  walked = None
795
805
  if not out_of_time():
796
806
  progress.advanced = now
@@ -802,7 +812,7 @@ def _size_held(
802
812
  seen[candidate.path] = progress
803
813
  result.held_resuming += 1
804
814
  continue
805
- seen[candidate.path] = (mtime, walked, progress.started)
815
+ seen[candidate.path] = (mtime, walked, progress.started, now)
806
816
  result.held_bytes[key] = result.held_bytes.get(key, 0) + walked
807
817
  if sizes is not None:
808
818
  sizes.clear()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-revloop
3
- Version: 0.31.28
3
+ Version: 0.31.30
4
4
  Summary: ALISSA-TOOLS-GITHUB-REVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera