Module for converting russian cost to string
Project description
Описание модуля russian_cost
Оглавление
- Общая информация
- Помещение данных в класс и их вывод
- Формат вывода данных
- Пример использования в шаблонизаторах
Общая информация
Модуль russian_cost служит для преобразования стоимости в строку с использованием различных форматов вывода. Например:
| Исходные данные | Вывод |
|---|---|
| -0.11 | - 11 копеек |
| -0.11 | минус одиннадцать копеек |
| 0.72 | семьдесят две копейки |
| 100020 | сто тысяч двадцать рублей |
| 1.12 | один рубль 12 копеек |
| 23.12 | двадцать три рубля 12 копеек |
Помещение данных в класс и их вывод
Предположим что у вас есть число, которое нужно преобразовать в стоимость:
from russian_cost import RussianCost
cost = RussianCost(-4.24)
print(cost)
# минус четыре рубля двадцать четыре копейки
Первым аргументов в конструктор класса передается сама стоимость, вторым аргументом передается формат вывода стоимости, по умолчанию он %S %R %P. Стоимость и формат вывода можно указывать при инициализации экземпляра класса:
from pprint import pprint
from russian_cost import RussianCost
cost = [
RussianCost(-4.24),
RussianCost(-999.1, out_format='%s %R %p'),
RussianCost(-43.23, out_format='%s %r %p'),
RussianCost(-43.23, out_format='%S %R и на сдачу %p'),
RussianCost(0.23, out_format='Ваша сдача %p'),
]
pprint(cost)
# [минус четыре рубля двадцать четыре копейки,
# - девятьсот девяносто девять рублей 10 копеек,
# - 43 рубля 23 копейки,
# минус сорок три рубля и на сдачу 23 копейки,
# Ваша сдача 23 копейки]
Так и после объявления экземпляра класса:
from russian_cost import RussianCost
cost = RussianCost(-4.24)
print(cost)
# минус четыре рубля двадцать четыре копейки
cost.out_format = '%s %R %p'
print(cost)
# - четыре рубля 24 копейки
cost.cost = 34353.1
print(cost)
# тридцать четыре тысячи триста пятьдесят три рубля 10 копеек
cost.out_format = 'Ваша сдача %p (%P)'
print(cost)
# Ваша сдача 10 копеек (десять копеек)
Так же класс RussianCost поддерживает метод strfcost, который позволяет вывести стоимость в нужном формате, без изменения формата ввода класса out_format:
from russian_cost import RussianCost
cost = RussianCost(-4.24)
print(cost)
# минус четыре рубля двадцать четыре копейки
print(cost.strfcost('%s %R %p'))
# - четыре рубля 24 копейки
Формат вывода данных
| Директива | Значение | Пример |
|---|---|---|
| %S | Знак в текстовом виде | минус |
| %s | Знак в символьном виде | - |
| %R | Рубли в текстовом виде | четыре рубля |
| %r | Рубли в символьном виде | 4 рубля |
| %P | Копейки в текстовом виде | двадцать четыре копейки |
| %p | Копейки в символьном виде | 24 копейки |
Пример использования в шаблонизаторах
import jinja2
from docxtpl import DocxTemplate
from russian_cost import strfcost
context = dict(cost=12.34)
jinja_env = jinja2.Environment()
jinja_env.filters.update(strfcost=strfcost)
doc = DocxTemplate(template_path)
doc.render(context, jinja_env)
doc.save(result_path)
Внутри шаблона
{{cost|strfcost}}
....
{{cost|strfcost('%S %R и на сдачу %p')}}
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
File details
Details for the file russian_cost-0.1.0.tar.gz.
File metadata
- Download URL: russian_cost-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7a4f66a33505f34e7d85524919721e7e31ebf37b3292a55fd02c253186320bb
|
|
| MD5 |
d5260c0aedb76d4ed275606f315a4e8d
|
|
| BLAKE2b-256 |
de94fecaed2b5381bc6d331693cd960d57c5fa8ed1033ba402212864cab829bb
|