iwa 0.0.11__py3-none-any.whl → 0.0.12__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.
iwa/core/cli.py CHANGED
@@ -14,6 +14,14 @@ from iwa.core.wallet import Wallet
14
14
  from iwa.tui.app import IwaApp
15
15
 
16
16
  iwa_cli = typer.Typer(help="iwa command line interface")
17
+
18
+ @iwa_cli.callback()
19
+ def main_callback(ctx: typer.Context):
20
+ """Initialize IWA CLI."""
21
+ # Print banner on startup
22
+ from iwa.core.utils import get_version, print_banner
23
+ print_banner("iwa", get_version("iwa"))
24
+
17
25
  wallet_cli = typer.Typer(help="Manage wallet")
18
26
 
19
27
  iwa_cli.add_typer(wallet_cli, name="wallet")
iwa/core/utils.py CHANGED
@@ -84,3 +84,41 @@ def configure_logger():
84
84
 
85
85
  configure_logger.configured = True
86
86
  return logger
87
+
88
+ def get_version(package_name: str) -> str:
89
+ """Get package version."""
90
+ from importlib.metadata import version, PackageNotFoundError
91
+ try:
92
+ return version(package_name)
93
+ except PackageNotFoundError:
94
+ return "unknown"
95
+
96
+
97
+ def print_banner(service_name: str, service_version: str, extra_versions: dict = None) -> None:
98
+ """Print startup banner."""
99
+ try:
100
+ from rich.console import Console
101
+ from rich.panel import Panel
102
+ from rich.text import Text
103
+
104
+ console = Console(stderr=True)
105
+
106
+ # Build content
107
+ text = Text()
108
+ text.append(f"🚀 {service_name.upper()} ", style="bold cyan")
109
+ text.append(f"v{service_version}", style="bold yellow")
110
+
111
+ if extra_versions:
112
+ for name, ver in extra_versions.items():
113
+ text.append(f"\n📦 {name.upper()}: ", style="bold green")
114
+ text.append(f"v{ver}", style="bold yellow")
115
+
116
+ console.print(Panel(text, title="Startup", border_style="blue"))
117
+
118
+ except ImportError:
119
+ # Fallback if rich is not available
120
+ print(f"--- {service_name.upper()} v{service_version} ---")
121
+ if extra_versions:
122
+ for name, ver in extra_versions.items():
123
+ print(f" {name.upper()}: v{ver}")
124
+ print("-------------------------------")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iwa
3
- Version: 0.0.11
3
+ Version: 0.0.12
4
4
  Summary: A secure, modular, and plugin-based framework for crypto agents and ops
5
5
  Requires-Python: <4.0,>=3.12
6
6
  Description-Content-Type: text/markdown
@@ -1,7 +1,7 @@
1
1
  iwa/__init__.py,sha256=vu12UytYNREtMRvIWp6AfV1GgUe53XWwCMhYyqKAPgo,19
2
2
  iwa/__main__.py,sha256=eJU5Uxeu9Y7shWg5dt5Mcq0pMC4wFVNWjeYGKSf4Apw,88
3
3
  iwa/core/__init__.py,sha256=GJv4LJOXeZ3hgGvbt5I6omkoFkP2A9qhHjpDlOep9ik,24
4
- iwa/core/cli.py,sha256=iUZ3VBUwjYLp_m8UxvMrIsIDxUs2n5a6zVElLiDfSwo,7507
4
+ iwa/core/cli.py,sha256=GCrHSUp5W1KdLHoWbk0aCLTphkKDLROoFh82uyUqdY8,7729
5
5
  iwa/core/constants.py,sha256=En-1uT5Anv0_NCSMdQjTGvjqiNAWfbSb_kGlH4Ct0Ag,966
6
6
  iwa/core/db.py,sha256=WI-mP0tQAmwFPeEi9w7RCa_Mcf_zBfd_7JcbHJwU1aU,10377
7
7
  iwa/core/ipfs.py,sha256=aHjq_pflgwDVHl8g5EMQv0q2RAmMs-a0pOTVsj_L5xE,4980
@@ -16,7 +16,7 @@ iwa/core/tables.py,sha256=y7Cg67PAGHYVMVyAjbo_CQ9t2iz7UXE-OTuUHRyFRTo,2021
16
16
  iwa/core/test.py,sha256=gey0dql5eajo1itOhgkSrgfyGWue2eSfpr0xzX3vc38,643
17
17
  iwa/core/types.py,sha256=EfDfIwLajTNK-BP9K17QLOIsGCs8legplKI_bUD_NjM,1992
18
18
  iwa/core/ui.py,sha256=DglmrI7XhUmOpLn9Nog9Cej4r-VT0JGFkuSNBx-XorQ,3131
19
- iwa/core/utils.py,sha256=5fc8Ffd3F47iFb8QbnZmKh_d2Fsh1ZytVG2HFnhySEQ,2950
19
+ iwa/core/utils.py,sha256=TYgRQVbSJ0qSLh1azhX9DP9APlwf9QQa4FvGXvEpQ3o,4279
20
20
  iwa/core/wallet.py,sha256=sNFK-_0y-EgeLpNHt9o5tCqTM0oVqJra-eAWjR7AgyU,13038
21
21
  iwa/core/chain/__init__.py,sha256=XJMmn0ed-_aVkY2iEMKpuTxPgIKBd41dexSVmEZTa-o,1604
22
22
  iwa/core/chain/errors.py,sha256=9SEbhxZ-qASPkzt-DoI51qq0GRJVqRgqgL720gO7a64,1275
@@ -150,7 +150,7 @@ iwa/web/tests/test_web_endpoints.py,sha256=C264MH-CTyDW4GLUrTXBgLJKUk4-89pFAScBd
150
150
  iwa/web/tests/test_web_olas.py,sha256=0CVSsrncOeJ3x0ECV7mVLQV_CXZRrOqGiVjgLIi6hZ8,16308
151
151
  iwa/web/tests/test_web_swap.py,sha256=7A4gBJFL01kIXPtW1E1J17SCsVc_0DmUn-R8kKrnnVA,2974
152
152
  iwa/web/tests/test_web_swap_coverage.py,sha256=zGNrzlhZ_vWDCvWmLcoUwFgqxnrp_ACbo49AtWBS_Kw,5584
153
- iwa-0.0.11.dist-info/licenses/LICENSE,sha256=eIubm_IlBHPYRQlLNZKbBNKhJUUP3JH0A2miZUhAVfI,1078
153
+ iwa-0.0.12.dist-info/licenses/LICENSE,sha256=eIubm_IlBHPYRQlLNZKbBNKhJUUP3JH0A2miZUhAVfI,1078
154
154
  tests/legacy_cow.py,sha256=oOkZvIxL70ReEoD9oHQbOD5GpjIr6AGNHcOCgfPlerU,8389
155
155
  tests/legacy_safe.py,sha256=AssM2g13E74dNGODu_H0Q0y412lgqsrYnEzI97nm_Ts,2972
156
156
  tests/legacy_transaction_retry_logic.py,sha256=D9RqZ7DBu61Xr2djBAodU2p9UE939LL-DnQXswX5iQk,1497
@@ -201,8 +201,8 @@ tests/test_utils.py,sha256=vkP49rYNI8BRzLpWR3WnKdDr8upeZjZcs7Rx0pjbQMo,1292
201
201
  tests/test_workers.py,sha256=MInwdkFY5LdmFB3o1odIaSD7AQZb3263hNafO1De5PE,2793
202
202
  tools/create_and_stake_service.py,sha256=1xwy_bJQI1j9yIQ968Oc9Db_F6mk1659LuuZntTASDE,3742
203
203
  tools/verify_drain.py,sha256=PkMjblyOOAuQge88FwfEzRtCYeEtJxXhPBmtQYCoQ-8,6743
204
- iwa-0.0.11.dist-info/METADATA,sha256=zjnguna0n38HHpQ8UrUvwj4gT8ZZkIp7ivYg0mYax_w,7295
205
- iwa-0.0.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
206
- iwa-0.0.11.dist-info/entry_points.txt,sha256=nwB6kscrfA7M00pYmL2j-sBH6eF6h2ga9IK1BZxdiyQ,241
207
- iwa-0.0.11.dist-info/top_level.txt,sha256=kedS9cRUbm4JE2wYeabIXilhHjN8KCw0IGbqqqsw0Bs,16
208
- iwa-0.0.11.dist-info/RECORD,,
204
+ iwa-0.0.12.dist-info/METADATA,sha256=4V-Vxvi5u3z7CGm5nROLqsdmPLD-aFYJtzpo9Jl21Ow,7295
205
+ iwa-0.0.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
206
+ iwa-0.0.12.dist-info/entry_points.txt,sha256=nwB6kscrfA7M00pYmL2j-sBH6eF6h2ga9IK1BZxdiyQ,241
207
+ iwa-0.0.12.dist-info/top_level.txt,sha256=kedS9cRUbm4JE2wYeabIXilhHjN8KCw0IGbqqqsw0Bs,16
208
+ iwa-0.0.12.dist-info/RECORD,,
File without changes