Skip to main content

Module for converting russian cost to string

Project description

Tests Lint

Описание модуля russian_cost


Оглавление

  1. Общая информация
  2. Помещение данных в класс и их вывод
  3. Формат вывода данных
  4. Пример использования в шаблонизаторах

Общая информация

Модуль 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


Download files

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

Source Distribution

russian_cost-0.1.0.tar.gz (6.3 kB view details)

Uploaded Source

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

Hashes for russian_cost-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b7a4f66a33505f34e7d85524919721e7e31ebf37b3292a55fd02c253186320bb
MD5 d5260c0aedb76d4ed275606f315a4e8d
BLAKE2b-256 de94fecaed2b5381bc6d331693cd960d57c5fa8ed1033ba402212864cab829bb

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