![Tests](https://github.com/zzzkorn/russian_cost/actions/workflows/test.yml/badge.svg)
![Lint](https://github.com/zzzkorn/russian_cost/actions/workflows/lint.yml/badge.svg)
# Описание модуля russian_cost
____

## Оглавление
0. [Общая информация](#Общая-информация)
1. [Помещение данных в класс и их вывод](#Помещение-данных-в-класс-и-их-вывод)
2. [Формат вывода данных](#Формат-вывода-данных)


## Общая информация
Модуль russian_cost служит для преобразования стоимости в строку с использованием различных форматов вывода. Например:

| Исходные данные | Вывод |
|----------------|----------------:|
| -0.11 | - 11 копеек |
| -0.11 | минус одиннадцать копеек|
| 0.72 | семьдесят две копейки |
| 100020 | сто тысяч двадцать рублей|
|1.12| один рубль 12 копеек|
| 23.12 | двадцать три рубля 12 копеек|

## Помещение данных в класс и их вывод
Предположим что у вас есть число, которое нужно преобразовать в стоимость:
```Python
from russian_cost import RussianCost

cost = RussianCost(-4.24)
print(cost)

# минус четыре рубля двадцать четыре копейки
```

Первым аргументов в конструктор класса передается сама стоимость, вторым аргументом передается формат вывода стоимости, по умолчанию он `%S %R %P`. Стоимость и формат вывода можно указывать при инициализации экземпляра класса:
```Python
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 копейки]
```
Так и после объявления экземпляра класса:
```Python
from russian_cost import RussianCost

cost = RussianCost(-4.24)
print(cost)
# минус четыре рубля двадцать четыре копейки
cost.out_format = '%s %R %p'
print(cost)
# - четыре рубля 24 копейки
cost.coast = 34353.1
print(cost)
# тридцать четыре тысячи триста пятьдесят три рубля 10 копеек
cost.out_format = 'Ваша сдача %p (%P)'
print(cost)
# Ваша сдача 10 копеек (десять копеек)
```
Так же класс `RussianCost` поддерживает метод `strfcoast`, который позволяет вывести стоимость в нужном формате, без изменения формата ввода класса `out_format`:
```Python
from russian_cost import RussianCost

cost = RussianCost(-4.24)
print(cost)
# минус четыре рубля двадцать четыре копейки
print(cost.strfcoast('%s %R %p'))
# - четыре рубля 24 копейки
```
## Формат вывода данных

| Директива | Значение | Пример |
|----------------|:---------:|----------------:|
| %S | Знак в текстовом виде | минус |
| %s | Знак в символьном виде | - |
| %R | Рубли в текстовом виде | четыре рубля |
| %r | Рубли в символьном виде | 4 рубля |
| %P | Копейки в текстовом виде | двадцать четыре копейки |
| %p | Копейки в символьном виде | 24 копейки |
