From d9c5042ec759632d80ad2aa87d70cc7308c02779 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 18 May 2026 15:54:48 +0000 Subject: [PATCH 1/3] added langs command utility --- packages/foreignthon/src/foreignthon/cli.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/foreignthon/src/foreignthon/cli.py b/packages/foreignthon/src/foreignthon/cli.py index 4a93529..2eeb306 100644 --- a/packages/foreignthon/src/foreignthon/cli.py +++ b/packages/foreignthon/src/foreignthon/cli.py @@ -274,7 +274,25 @@ def check(file: Path): click.echo(f"✗ {e}", err=True) sys.exit(1) +@main.command(context_settings=CONTEXT_SETTINGS) +def langs(): + """List all installed language packs.""" + from .pack import _discover_packs + packs = _discover_packs() + if not packs: + click.echo("No language packs installed.") + click.echo("Try: pip install foreignthon-es") + return + + click.echo("Installed language packs:") + for code, module in sorted(packs.items()): + import json + data = json.loads(module.get_pack_path().read_text(encoding="utf-8")) + name = data["meta"].get("name", code) + native = data["meta"].get("native_name", "") + click.echo(f" {code:<6} {name} ({native})") + @main.command("pack", context_settings=CONTEXT_SETTINGS) @click.argument("json_file", type=click.Path(exists=True, path_type=Path)) def validate_pack(json_file: Path): From 606501d6549e39bc261fd1f0a66dd2c00212afe5 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 18 May 2026 15:56:17 +0000 Subject: [PATCH 2/3] readme fix --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c549a98..75c0338 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ ForeignThon transpiles `.es.py`, `.ta.py` (and more) into standard Python. Keywo ```python # hola.es.py -definir saludar(nombre): +def saludar(nombre): retornar f"Hola, {nombre}!" -para i en rango(3): +para i en dist(3): imprimir(saludar(f"mundo {i}")) ``` From 15f367131e40f1aebca0cfe2cbe2464f90698f9a Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 18 May 2026 15:58:09 +0000 Subject: [PATCH 3/3] bumped versions --- packages/foreignthon/pyproject.toml | 2 +- packages/langs/es/pyproject.toml | 2 +- packages/langs/ta/pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/foreignthon/pyproject.toml b/packages/foreignthon/pyproject.toml index 4d573cb..3747d22 100644 --- a/packages/foreignthon/pyproject.toml +++ b/packages/foreignthon/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "foreignthon" -version = "0.5.0" +version = "0.5.1" description = "Write Python in any language. Transpiles foreign-language .xx.py files to standard Python." license = { text = "GPL v3" } requires-python = ">=3.9" diff --git a/packages/langs/es/pyproject.toml b/packages/langs/es/pyproject.toml index e4d8f1b..ac85f99 100644 --- a/packages/langs/es/pyproject.toml +++ b/packages/langs/es/pyproject.toml @@ -14,7 +14,7 @@ authors = [ ] keywords = ["foreignthon", "spanish", "español"] -dependencies = ["foreignthon>=0.5.0"] +dependencies = ["foreignthon>=0.5.1"] [project.entry-points."foreignthon.langs"] es = "foreignthon_es" diff --git a/packages/langs/ta/pyproject.toml b/packages/langs/ta/pyproject.toml index 15b47b5..96371cc 100644 --- a/packages/langs/ta/pyproject.toml +++ b/packages/langs/ta/pyproject.toml @@ -12,7 +12,7 @@ authors = [ { name = "Keshav Anand", email = "keshavanand.dev@gmail.com" } ] keywords = ["foreignthon", "tamil", "தமிழ்"] -dependencies = ["foreignthon>=0.5.0"] +dependencies = ["foreignthon>=0.5.1"] [project.entry-points."foreignthon.langs"] ta = "foreignthon_ta"