request-vm-on-golem 0.1.55__tar.gz → 0.1.56__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 (28) hide show
  1. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/PKG-INFO +1 -1
  2. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/pyproject.toml +1 -1
  3. request_vm_on_golem-0.1.56/requestor/settings.py +49 -0
  4. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/README.md +0 -0
  5. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/__init__.py +0 -0
  6. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/api/main.py +0 -0
  7. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/cli/__init__.py +0 -0
  8. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/cli/commands.py +0 -0
  9. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/config.py +0 -0
  10. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/data/deployments/l2.json +0 -0
  11. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/db/__init__.py +0 -0
  12. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/db/sqlite.py +0 -0
  13. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/errors.py +0 -0
  14. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/payments/blockchain_service.py +0 -0
  15. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/payments/monitor.py +0 -0
  16. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/provider/__init__.py +0 -0
  17. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/provider/client.py +0 -0
  18. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/run.py +0 -0
  19. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/security/faucet.py +0 -0
  20. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/services/__init__.py +0 -0
  21. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/services/database_service.py +0 -0
  22. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/services/provider_service.py +0 -0
  23. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/services/ssh_service.py +0 -0
  24. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/services/vm_service.py +0 -0
  25. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/ssh/__init__.py +0 -0
  26. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/ssh/manager.py +0 -0
  27. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/utils/logging.py +0 -0
  28. {request_vm_on_golem-0.1.55 → request_vm_on_golem-0.1.56}/requestor/utils/spinner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: request-vm-on-golem
3
- Version: 0.1.55
3
+ Version: 0.1.56
4
4
  Summary: VM on Golem Requestor CLI - Create and manage virtual machines on the Golem Network
5
5
  Keywords: golem,vm,cloud,decentralized,cli
6
6
  Author: Phillip Jensen
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "request-vm-on-golem"
3
- version = "0.1.55"
3
+ version = "0.1.56"
4
4
  description = "VM on Golem Requestor CLI - Create and manage virtual machines on the Golem Network"
5
5
  authors = ["Phillip Jensen <phillip+vm-on-golem@golemgrid.com>"]
6
6
  readme = "README.md"
@@ -0,0 +1,49 @@
1
+ import json
2
+ from pathlib import Path
3
+ from typing import Literal, TypedDict
4
+
5
+ from .config import config
6
+
7
+
8
+ class _Prefs(TypedDict, total=False):
9
+ price_display: Literal["fiat", "native"]
10
+
11
+
12
+ _PREFS_FILE = config.base_dir / "settings.json"
13
+
14
+
15
+ def _read_prefs() -> _Prefs:
16
+ try:
17
+ if _PREFS_FILE.exists():
18
+ data = json.loads(_PREFS_FILE.read_text())
19
+ if isinstance(data, dict):
20
+ return data # type: ignore[return-value]
21
+ except Exception:
22
+ pass
23
+ return {}
24
+
25
+
26
+ def _write_prefs(p: _Prefs) -> None:
27
+ try:
28
+ _PREFS_FILE.parent.mkdir(parents=True, exist_ok=True)
29
+ tmp = Path(str(_PREFS_FILE) + ".tmp")
30
+ tmp.write_text(json.dumps(p, indent=2))
31
+ tmp.replace(_PREFS_FILE)
32
+ except Exception:
33
+ # Best-effort persistence; ignore write errors
34
+ pass
35
+
36
+
37
+ def get_price_display() -> Literal["fiat", "native"]:
38
+ prefs = _read_prefs()
39
+ mode = prefs.get("price_display")
40
+ if mode in ("fiat", "native"):
41
+ return mode
42
+ return "fiat"
43
+
44
+
45
+ def set_price_display(mode: Literal["fiat", "native"]) -> None:
46
+ prefs = _read_prefs()
47
+ prefs["price_display"] = mode
48
+ _write_prefs(prefs)
49
+