Skip to main content

JaPy is a Python dialect in Japanese.

Project description

JaPy - 日本語カタカナPython方言

JaPyロゴ - 青と赤を使用した「Ja」の文字デザイン。青い「J」の中にはPythonの蛇の目を表現した二つの白い円が配置され、愛と平和の融合を象徴している

JaPyロゴ - 青と赤を使用した「Ja」の文字デザイン。
青い「J」の中にはPythonの蛇の目を表現した二つの白い円が配置され、愛と平和の融合を象徴している

License: MIT PyPI - Python Version PyPI PyPI - Version VS Code Extension

JaPy - カタカナでプログラミング

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

japy_lang-0.2.1.tar.gz (313.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

japy_lang-0.2.1-py3-none-any.whl (284.0 kB view details)

Uploaded Python 3

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

Hashes for japy_lang-0.2.1.tar.gz
Algorithm Hash digest
SHA256 165822aa3b2ce37ca565d9185864cc1fe0aebcc5a4569bd3f9507b7c0abc9410
MD5 f089cc3ae5ede82e1c6272dee2da9175
BLAKE2b-256 40621b0681bdadd42f5ad177a994237458babc492b59e314b790a523d796ff64

See more details on using hashes here.

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

Hashes for japy_lang-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 991f8ba1be7a670d8c5ea85f26cd004e5515c037e9600e2673d6a4ad6b61c4a5
MD5 79eb7d3397aa4844d598ded21668e205
BLAKE2b-256 dfd32ee7db6a87adfb308a34ebe61b90650b9eade37b353205b2943b79762e83

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page