crazy-workers 1.4.1__tar.gz → 1.4.2__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 (50) hide show
  1. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/PKG-INFO +1 -1
  2. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/commands/status.py +8 -3
  3. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/main.py +3 -2
  4. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers.egg-info/PKG-INFO +1 -1
  5. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/pyproject.toml +1 -1
  6. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/LICENSE +0 -0
  7. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/README.md +0 -0
  8. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/__init__.py +0 -0
  9. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/_bootstrap.py +0 -0
  10. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/__init__.py +0 -0
  11. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/__main__.py +0 -0
  12. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/base.py +0 -0
  13. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/detect.py +0 -0
  14. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/entry.py +0 -0
  15. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/orchestrator.py +0 -0
  16. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/systemd.py +0 -0
  17. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/boot/windows.py +0 -0
  18. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/__init__.py +0 -0
  19. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/commands/__init__.py +0 -0
  20. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/commands/params.py +0 -0
  21. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/commands/starter.py +0 -0
  22. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/commands/stopper.py +0 -0
  23. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/discovery.py +0 -0
  24. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/cli/ui.py +0 -0
  25. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/client.py +0 -0
  26. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/__init__.py +0 -0
  27. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/backend.py +0 -0
  28. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/engine.py +0 -0
  29. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/manager/__init__.py +0 -0
  30. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/manager/lister.py +0 -0
  31. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/manager/recoverer.py +0 -0
  32. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/manager/starter.py +0 -0
  33. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/manager/stopper.py +0 -0
  34. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/core/recovery.py +0 -0
  35. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/daemon/__init__.py +0 -0
  36. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/daemon/__main__.py +0 -0
  37. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/daemon/reconciler.py +0 -0
  38. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/daemon/runner.py +0 -0
  39. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/database/__init__.py +0 -0
  40. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/database/schema.py +0 -0
  41. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/database/storage.py +0 -0
  42. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/testing/__init__.py +0 -0
  43. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/testing/backends.py +0 -0
  44. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers/testing/polling.py +0 -0
  45. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers.egg-info/SOURCES.txt +0 -0
  46. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers.egg-info/dependency_links.txt +0 -0
  47. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers.egg-info/entry_points.txt +0 -0
  48. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers.egg-info/requires.txt +0 -0
  49. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/crazy_workers.egg-info/top_level.txt +0 -0
  50. {crazy_workers-1.4.1 → crazy_workers-1.4.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crazy-workers
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: A Python library for managing background worker processes with persistent state, automatic recovery, and a CLI.
5
5
  Author: GioVanni Colasanto
6
6
  License: MIT
@@ -1,6 +1,7 @@
1
1
  import json
2
2
  import os
3
3
  import re
4
+ import sys
4
5
  from datetime import datetime
5
6
  from rich.panel import Panel
6
7
  from rich.table import Table
@@ -8,11 +9,15 @@ from rich.table import Table
8
9
  from ..ui import console
9
10
 
10
11
 
11
- def show_status(client, workers_dir):
12
+ def show_status(client, workers_dir, json_mode=False):
12
13
  """Observability hub: the target state store plus the worker table (desired vs actual)."""
13
- console().print(_build_header(workers_dir))
14
-
15
14
  workers = _merge_with_filesystem(client.list(), workers_dir)
15
+
16
+ if json_mode:
17
+ sys.stdout.write(json.dumps({'workers': workers}) + '\n')
18
+ return workers
19
+
20
+ console().print(_build_header(workers_dir))
16
21
  if not workers:
17
22
  console().print('[yellow]No workers found.[/yellow]')
18
23
  return workers
@@ -39,7 +39,8 @@ def _build_parser():
39
39
 
40
40
  subparsers = parser.add_subparsers(dest='command', help='Commands')
41
41
 
42
- subparsers.add_parser('status', help='Show workers (desired vs actual) and the target DB')
42
+ status_parser = subparsers.add_parser('status', help='Show workers (desired vs actual) and the target DB')
43
+ status_parser.add_argument('--json', action='store_true', help='Output workers as JSON to stdout')
43
44
 
44
45
  start_parser = subparsers.add_parser('start', help='Request a worker to run (interactive if type missing)')
45
46
  start_parser.add_argument('worker_type', nargs='?', help='The type (filename) of worker to start')
@@ -91,7 +92,7 @@ def main():
91
92
  try:
92
93
  with _build_client(workers_dir) as client:
93
94
  if args.command == 'status':
94
- show_status(client, workers_dir)
95
+ show_status(client, workers_dir, json_mode=getattr(args, 'json', False))
95
96
  elif args.command == 'start':
96
97
  params = _parse_params(args.params)
97
98
  if not start_worker(client, workers_dir, args.worker_type, worker_key=args.key, parameters=params):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crazy-workers
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: A Python library for managing background worker processes with persistent state, automatic recovery, and a CLI.
5
5
  Author: GioVanni Colasanto
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "crazy-workers"
3
- version = "1.4.1"
3
+ version = "1.4.2"
4
4
  description = "A Python library for managing background worker processes with persistent state, automatic recovery, and a CLI."
5
5
  readme = "README.md"
6
6
  authors = [{ name = "GioVanni Colasanto" }]
File without changes
File without changes
File without changes