Skip to main content

Thai-first Python helper libraries with Thai function names

Project description

Thaithon

Thaithon logo

โปรเจกต์นี้เป็น playground สำหรับทำ helper/library ภาษาไทยบน Python โดยตั้งชื่อฟังก์ชันให้เป็นคำไทยที่อ่านง่าย และใช้งานได้ใกล้เคียง library มาตรฐาน

Write Python in Thai 🇹🇭

Thaithon is an experimental layer that lets you write Python code using Thai-style syntax.

โครงสร้างโปรเจกต์

  • libs/
    • รวม library หลักทั้งหมด
    • ไพทอน.py, ไพทอน_builtins.py
    • คณิต.py, เวลา.py, สุ่ม.py, สถิติ.py
    • เจสัน.py, เรกซ์.py, เส้นทาง.py, ซีเอสวี.py
  • examples/
    • ตัวอย่างใช้งานสั้น ๆ
    • x.py, y.py
  • tests/
    • สคริปต์ทดสอบแต่ละโมดูล
  • tools/
    • utility/debug scripts
  • docs/
    • บันทึก handoff หรือเอกสารประกอบ

หมวด library ที่มีแล้ว

  • Built-ins ภาษาไทย (ไพทอน.py)
  • Math (คณิต.py)
  • DateTime + sleep (เวลา.py)
  • Random (สุ่ม.py)
  • Statistics (สถิติ.py)
  • JSON (เจสัน.py)
  • Regex (เรกซ์.py)
  • File/Path (เส้นทาง.py)
  • CSV (ซีเอสวี.py)
  • System/OS (ระบบ.py)
  • Web/HTTP (เว็บ.py)
  • Argument parsing (อาร์กิวเมนต์.py)

หมายเหตุ Unicode

ภาษาไทยบางคำ (เช่นที่มี ) มีโอกาสพิมพ์คนละ Unicode form ได้ จึงมี alias สำรองบางชื่อเพื่อรองรับการใช้งานร่วมกัน

ตัวอย่างการใช้งาน

ติดตั้งจาก PyPI:

pip install thaithon

จากนั้นสามารถ import โมดูลภาษาไทยได้ตรง ๆ เช่น:

from ไพทอน import พิมพ์, ความยาว
import คณิต
import เวลา
import สถิติ
import เจสัน

คะแนน = [12, 18, 20, 15]
ค่าเฉลี่ย = สถิติ.เฉลี่ย(คะแนน)
คะแนนรวม = คณิต.รวม(*คะแนน)
เวลาตอนนี้ = เวลา.เป็นข้อความไทย(เวลา.ตอนนี้())

สรุป = {
  "คะแนนรวม": คะแนนรวม,
  "ค่าเฉลี่ย": ค่าเฉลี่ย,
  "จำนวนรายการ": ความยาว(คะแนน),
  "เวลาประมวลผล": เวลาตอนนี้,
}

พิมพ์("สรุปผล:")
พิมพ์(เจสัน.แปลงเป็นข้อความ(สรุป, ย่อหน้า=2))

ถ้ารันจาก source code ใน repo นี้โดยตรง ให้เพิ่มโฟลเดอร์ libs เข้า sys.path ก่อน:

from pathlib import Path
import sys

ROOT_DIR = Path(__file__).resolve().parents[1]
LIB_DIR = ROOT_DIR / "libs"
if str(LIB_DIR) not in sys.path:
  sys.path.insert(0, str(LIB_DIR))

from ไพทอน import พิมพ์
import เวลา

พิมพ์("ตอนนี้:", เวลา.เป็นข้อความ(เวลา.ตอนนี้()))

วิธีรันตัวอย่าง

เปิด terminal ที่ root ของโปรเจกต์ แล้วรัน:

python examples/y.py
python examples/x.py

วิธีรันเทส

python tests/test_data_libs.py
python tests/test_math.py
python tests/test_math_extended.py
python tests/test_datetime.py
python tests/test_random_stats.py
python tests/test_helpers.py
python tests/test_sleep.py

เริ่มใช้งานกับ Git

โปรเจกต์นี้ถูกเตรียมโครงสร้างและไฟล์พื้นฐานสำหรับ Git แล้ว (.gitignore, .gitattributes, .editorconfig, LICENSE, CHANGELOG.md, CONTRIBUTING.md)

คำสั่งเริ่มต้นที่แนะนำ:

git status
git add .
git commit -m "chore: initialize Pythai project structure"

Pre-package Checklist

ก่อนเริ่มทำเป็น package จริง แนะนำให้เช็ก:

  • ตั้งชื่อ package ที่จะ publish (เช่น pythai หรือชื่อไทยแบบทับศัพท์)
  • รวม API ที่ต้องการเปิด public ให้ชัดในแต่ละไฟล์ __all__
  • ให้ test หลักผ่านทั้งหมด
  • เก็บ changelog ให้เป็นเวอร์ชัน (Unreleased -> x.y.z)
  • เลือกแนวทาง versioning (เช่น SemVer)

เตรียมปล่อยขึ้น PyPI

โปรเจกต์นี้มีไฟล์ pyproject.toml แล้ว และสามารถ build ได้ด้วย PEP 517

  1. Build package
python -m build
  1. ตรวจสอบไฟล์ build
python -m twine check dist/*
  1. ทดลองปล่อยขึ้น TestPyPI
python -m twine upload --repository testpypi dist/*
  1. ปล่อยขึ้น PyPI จริง
python -m twine upload dist/*

หมายเหตุ:

  • เพิ่ม version ทุกครั้งก่อนปล่อย release ใหม่

License และ Attribution

  • โปรเจกต์นี้ใช้สัญญาอนุญาต Apache-2.0
  • กรุณาเก็บไฟล์ LICENSE และ NOTICE ไว้เมื่อมีการแจกจ่ายต่อ
  • หากใช้งานในงานวิจัย/บทความ แนะนำให้อ้างอิงจากไฟล์ CITATION.cff

Credit

แนวทาง naming

  • ใช้คำไทยความหมายตรง เช่น พิมพ์, รับค่า, จำนวนเต็ม, จำนวนจริง
  • ลดคำทับศัพท์เท่าที่ทำได้
  • เก็บ compatibility alias ในกรณีที่จำเป็น

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

thaithon-0.4.1.tar.gz (27.6 kB view details)

Uploaded Source

Built Distribution

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

thaithon-0.4.1-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file thaithon-0.4.1.tar.gz.

File metadata

  • Download URL: thaithon-0.4.1.tar.gz
  • Upload date:
  • Size: 27.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for thaithon-0.4.1.tar.gz
Algorithm Hash digest
SHA256 c68f00e6e5590150e80823e8292419aebaddc4f93f1bf11ea01de93c2a698825
MD5 0bce29856c94505027f32a84ad88fd38
BLAKE2b-256 f1d92ce72c4e84722108150d3a6e3403f0c1f35bc6da8f4b1fc702779a19ecee

See more details on using hashes here.

File details

Details for the file thaithon-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: thaithon-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 27.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for thaithon-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d5d90228e5f1b14fee84e9e5da8ad8c07b0ee0bfc9eafc176fddc28ec0153a1f
MD5 db57ed5c5076230657691f1910d1acb1
BLAKE2b-256 767ec099c100579b3704b54434a92fca457c21de01a8195808d06252d6a596fc

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