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.0.tar.gz (27.5 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.0-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: thaithon-0.4.0.tar.gz
  • Upload date:
  • Size: 27.5 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.0.tar.gz
Algorithm Hash digest
SHA256 1c53fa661cadefce9f2d7c9ebfc2898746d12b5e291d59b455137fcdbc2c3a8a
MD5 c270dcc12e6199401423837bf9fca404
BLAKE2b-256 2754bf9193f0ff31a9accaa6d20afec286aaa17b7a8a16212ec2a6e6dbb9c683

See more details on using hashes here.

File details

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

File metadata

  • Download URL: thaithon-0.4.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da74781b2bdfec669bcbb14ff9182889c65f7ed278deb8806b4ac6b90da463f1
MD5 a280b0c7aae0f5f8f84961f43d28268b
BLAKE2b-256 f51e80a2d52a0cbe8097a92404f3b6532b2193c142eb9ba32660f959334a0d93

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