JaPy is a Python dialect in Japanese.
Project description
JaPy - 日本語カタカナPython方言
JaPyロゴ - 青と赤を使用した「Ja」の文字デザイン。
青い「J」の中にはPythonの蛇の目を表現した二つの白い円が配置され、愛と平和の融合を象徴している
JaPyは日本語カタカナキーワードを使用するPythonの方言です。なぜか全部カタカナでプログラミングしたくなった時のためのツールです。Pythonの構文はそのままに、なんとなく日本語っぽくコーディングできます。
🌟 フィーチャー
- フルカタカナキーワード:
デフ、イフ、フォーなど、なんか日本語っぽいキーワード群 - トランスパイラー: JaPyコードを普通のPythonコードにコンバート
- コマンドラインツール: ファイル変換、実行、検証機能
- VS Codeエクステンション: シンタックスハイライトとオートコンプリートをサポート
- ユニコード対応: 日本語アイデンティファイアーの完全サポート
📦 インストレーション
Python 3.12以上が必要です。
PyPIから(推奨)
# pipでインストール
pip install japy-lang
# または uvでインストール
uv add japy-lang
ローカル開発版
# リポジトリをクローン
git clone https://github.com/satoi8080/JaPy.git
cd JaPy
# デペンデンシーをインストール
uv sync
VS Codeエクステンション
VS Code Marketplaceからインストールできます。詳細はvscode-extension/README.mdをリファーしてください。
🚀 ユーセージ
ベーシックなサンプル
# hello.japy
デフ 挨拶(名前):
プリント(f"こんにちは、{名前}さん!")
リターン トゥルー
クラス 人:
デフ __init__(self, 名前, 年齢):
self.名前 = 名前
self.年齢 = 年齢
デフ 自己紹介(self):
プリント(f"私の名前は{self.名前}で、{self.年齢}歳です。")
# メイン実行
イフ __name__ == "__main__":
人物 = 人("田中", 25)
人物.自己紹介()
挨拶(人物.名前)
コマンドラインユーセージ
# JaPyファイルをトランスパイルしてエグゼキュート
japy --input=hello.japy --execute
# Pythonコードをアウトプットファイルにセーブ
japy --input=hello.japy --output=hello.py
# トランスパイルリザルトを表示しない
japy --input=hello.japy --show=false --execute
# ストリクトモードでトランスパイルして実行
japy --input=hello.japy --strict --execute
# キーワードマッピングをバリデート
japy --validate
# デバッグモードで実行
japy --input=hello.japy --execute --debug
コマンドラインオプション
利用可能なフラグ:
--input: トランスパイルする.japyファイル(必須、--validateモード以外)--output: 出力Pythonファイル(指定しない場合は標準出力)--execute: トランスパイルされたPythonコードを実行--show: トランスパイルされたPythonコードを表示(デフォルト: true)--strict: ストリクトモード:tokenizerを使用してより正確なコード変換を行う--validate: キーワードと組み込み関数のマッピングを検証--debug: デバッグ出力を有効化
プログラムからユーズ
from japy import transpile_japy
japy_code = """
デフ テスト():
プリント("こんにちは、JaPy!")
リターン トゥルー
"""
python_code = transpile_japy(japy_code)
print(python_code)
exec(python_code)
ストリクトモード(Strict Mode)
JaPyは2つの変換モードを提供しています:
簡易モード(デフォルト)
- 文字列置換と正規表現(regex)を使用
- 高速でシンプルな変換
- 文字列やコメント内の日本語キーワードも置換される可能性があります
ストリクトモード(--strict)
- Pythonのtokenizerを使用
- より正確で安全な変換
- 文字列やコメント内の日本語キーワードを保護
- コードの構造を理解して適切に変換
使用例:
# test.japy
デフ テスト関数():
メッセージ = "これはプリントという文字列です" # このプリントは置換されません
プリント(メッセージ) # このプリントはprintに置換されます
変換結果の違い:
# 簡易モード(デフォルト)
japy --input=test.japy --show
# 結果: 文字列内の"プリント"も"print"に置換される
# 厳格モード
japy --input=test.japy --show --strict
# 結果: 文字列内の"プリント"は保護され、コード内の"プリント"のみ置換される
📚 ランゲージリファレンス
サポートされているキーワード、ビルトイン関数、ビルトイン型のコンプリートなリストは、japy/ジャパイ.pyのソースコードをリファーしてください。
メジャーなキーワードサンプル:
デフ→def(ファンクションデフィニション)イフ→if(コンディショナルブランチ)フォー→for(ループ)プリント→print(アウトプット)レン→len(レングス)
日本語記号もサポートしています:
()→()(カッコ)「」→""(ダブルクォート)、→,/。→.(句読点)+-×÷→+-*/(演算子)
🛠️ デベロップメント
テストエグゼキューション
# サンプルJaPyファイルをラン
uv run japy --input=japy/サンプル/ジャパイ.japy --execute
# ストリクトモードでテスト
uv run japy --input=test_strict_mode.japy --show --strict
# キーワードマッピングをバリデート
uv run japy --validate
# VS Code拡張機能のテストサンプルを実行
uv run japy --input=vscode-extension/test-example.japy --execute
# デバッグモードでテスト
uv run japy --input=japy/サンプル/ジャパイ.japy --execute --debug
VS Codeエクステンションのデベロップメント
vscode-extension/README.mdをリファーしてください。
📄 ライセンス
MIT License - ディテールはLICENSEファイルをリファーしてください。
🔗 リンクス
JaPy - 日本語カタカナでプログラミングをエンジョイしよう!
なんでこんなものを作ったんだろう...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file japy_lang-0.2.1.tar.gz.
File metadata
- Download URL: japy_lang-0.2.1.tar.gz
- Upload date:
- Size: 313.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
165822aa3b2ce37ca565d9185864cc1fe0aebcc5a4569bd3f9507b7c0abc9410
|
|
| MD5 |
f089cc3ae5ede82e1c6272dee2da9175
|
|
| BLAKE2b-256 |
40621b0681bdadd42f5ad177a994237458babc492b59e314b790a523d796ff64
|
File details
Details for the file japy_lang-0.2.1-py3-none-any.whl.
File metadata
- Download URL: japy_lang-0.2.1-py3-none-any.whl
- Upload date:
- Size: 284.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
991f8ba1be7a670d8c5ea85f26cd004e5515c037e9600e2673d6a4ad6b61c4a5
|
|
| MD5 |
79eb7d3397aa4844d598ded21668e205
|
|
| BLAKE2b-256 |
dfd32ee7db6a87adfb308a34ebe61b90650b9eade37b353205b2943b79762e83
|