Source code for pythainlp.ancient.currency

# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: 2016-2025 PyThaiNLP Project
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: Apache-2.0

[docs] def convert_currency(value: float, from_unit: str) -> dict: """ Convert ancient Thai currency to other units * เบี้ย (Bia) * อัฐ (At) * ไพ (Pi) * เฟื้อง (Feuang) * สลึง (Saleung) * บาท (Bath) * ตำลึง (Tamleung) * ชั่ง (Chang) See more: `Thai money <https://en.wikipedia.org/wiki/History_of_Thai_money>`_. :param float value: value :param str from_unit: currency unit \ ('เบี้ย', 'อัฐ', 'ไพ', 'เฟื้อง', 'สลึง', 'บาท', 'ตำลึง', 'ชั่ง') :return: Thai currency :rtype: dict :Example: :: from pythainlp.ancient import convert_currency print(convert_currency(8, "บาท")) # output: # { # 'เบี้ย': 51200.0, # 'อัฐ': 512.0, # 'ไพ': 256.0, # 'เฟื้อง': 64.0, # 'สลึง': 32.0, # 'บาท': 8.0, # 'ตำลึง': 2.0, # 'ชั่ง': 0.1 # } """ conversion_factors_to_att = { 'เบี้ย': 1, 'อัฐ': 100, # 1 อัฐ = 100 เบี้ย 'ไพ': 2 * 100, # 1 ไพ = 2 อัฐ 'เฟื้อง': 4 * 2 * 100, # 1 เฟื้อง = 4 ไพ 'สลึง': 2 * 4 * 2 * 100, # 1 สลึง = 2 เฟื้อง 'บาท': 4 * 2 * 4 * 2 * 100, # 1 บาท = 4 สลึง 'ตำลึง': 4 * 4 * 2 * 4 * 2 * 100, # 1 ตำลึง = 4 บาท 'ชั่ง': 20 * 4 * 4 * 2 * 4 * 2 * 100, # 1 ชั่ง = 20 ตำลึง } if from_unit not in conversion_factors_to_att: raise NotImplementedError( f"Currency unit '{from_unit}' is not support." ) # start from 'อัฐ' value_in_att = value * conversion_factors_to_att[from_unit] # Calculate values ​​in other units results = {} for unit, factor in conversion_factors_to_att.items(): results[unit] = value_in_att / factor return results