Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
✅Новости инвесторам:⚡️Настало время подвести предварительные операционные итоги за 6 мес. 2024 года⚡️
🔥Лизинговый портфель Компании с начала года показал рост 28% и достиг 3,14 млрд руб. (+ 690 млн руб.)
За 6 мес. 2024 г. командой Аренза (в скобках для сравнения будут приведены результаты аналогичного периода 2023 года):
📝 Заключено договоров – 927 (733) шт. +26%
💰 Профинансировано оборудования на сумму 1475 (1 042) млн руб. +42%
🧾 Средний чек = 1,6млн руб.
💵 Получено лизинговых платежей - 1 010 (568) млн руб. +78%
🪙 Чистый долг на 01.07.2024 = 1 463 млн руб. (+309 млн руб. с начала года)
⚖️ Коэф. Лизинговый портфель/Чистый долг = 2,15
💸 Облигации:
🔸 Выплачено 25 купонов на общую сумму 102 млн руб.
🔸 Погашена часть номинальной стоимости: 90 млн руб.
🔸 В апреле размещен 5-й выпуск облигаций на сумму 400 млн руб.
✅повышен кредитный рейтинг АКРА до ВВВ- с Позитивным прогнозом.
#ARENZA💪
✅Новости инвесторам: 03.07.2024 г. завершился 17-й купонный период по 2-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A105TR7):
🔸Выплачен купонный доход в размере 3 219 000,00 руб.
🔸 Размер выплаченных ежемесячных процентов по одной Биржевой облигации - 10,73 руб.
👉 Подробнее: E-disclosure
#Arenza🔥
✅Новости инвесторам: 28.06.2024 г. завершился 12-й купонный период по 3-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A106GC4):
🔸Выплачен купонный доход в размере 4 272 000,00 руб.
🔸 Размер выплаченных ежемесячных процентов по одной Биржевой облигации - 10,68 руб.
👉 Подробнее: E-disclosure
#ARENZA🔥
Новости инвесторам:
✅ 24.06.2024 г. завершился 10-й купонный период по по 1-му облигационному выпуску ООО «АРЕНЗА-ПРО» (ISIN: RU000A104C78):
🔸Погашена часть номинальной стоимости (10%) в размере 30 000 000,00 руб., из расчета 100,00 руб. на одну ценную бумагу.
🔸Выплачен купонный доход в размере 3 255 000,00 руб.
🔸 Размер выплаченных ежеквартальных процентов по одной Биржевой облигации - 10,85 руб.
✅23.06.2024 г. завершился 8-й купонный период по 4-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A107217):
🔸24.06.2024 г. выплачен купонный доход в размере 3 948 000,00 руб.
🔸 Размер выплаченных ежемесячных процентов по одной Биржевой облигации - 13,16 руб.
👉 Подробнее: E-disclosure
#ARENZA
✅Новости инвесторам: 03.06.2024 г. завершился 16-й купонный период по 2-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A105TR7):
🔸Выплачен купонный доход в размере 3 219 000,00 руб.
🔸Ставка купона - 14,5% годовых
🔸 Размер выплаченных ежемесячных процентов по одной Биржевой облигации - 10,73 руб.
Другие запланированные выплаты текущего месяца можно посмотреть в календаре инвестора на июнь.
👉 Подробнее: E-disclosure
#Arenza🔥
✅Новости инвесторам: 29.05.2024 г. завершился 11-й купонный период по 3-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A106GC4):
🔸Выплачен купонный доход в размере 4 272 000,00 руб.
🔸Ставка купона - 13,0% годовых
🔸 Размер выплаченных ежемесячных процентов по одной Биржевой облигации - 10,68 руб.
👉 Подробнее: E-disclosure
#Arenza🔥
⚡️ООО "АРЕНЗА-ПРО" впервые отчиталась по стандартам МСФО ⚡️
💥 Компания подготовила и провела аудит МСФО отчетности за 2023 год (+ 2 предшествующих года).
Публикуем основные показатели (в скобках для сравнения результаты 2022 года) в тыс. руб.:
🟢 Чистые инвестиции в лизинг: 1 327 209 (565 323) + 135%
🟢 Собственный капитал: 441 490 (395 649) + 12%
🟢 Итого активов по МСФО - 1 710 960 (864 838) + 98%
✅ Процентные доходы по финансовому лизингу: 307 371 (212 323) + 45%
✅ Непроцентные доходы: 82 130 (37 478) + 119%❗️
🔥Чистая прибыль: 75 841 (47 724) +59%
Мы сделали очередной шаг к прозрачности и объективной оценке финансового положения нашей компании. Полагаем, что раскрытие информации по международным стандартам позволит нам более точно и объективно отразить итоги финансовой деятельности Аренза. 💪
С отчетностью можно ознакомиться по ссылке на нашем сайте МСФО или на сайте раскрытия информации: https://www.e-disclosure.ru/portal/files.aspx?id=38504&type=4
#Arenza🔥
✅Новости инвесторам: 19.05.2024 г. завершился 3-й купонный период по 5-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A107ST1):
🔸20.05.2024 г. выплачен купонный доход в размере 5 604 000,00 руб.
🔸Ставка купона - 16,5% годовых
🔸 Размер выплаченных ежемесячных процентов по одной Биржевой облигации - 14,01 руб.
👉 Подробнее: E-disclosure
#Arenza🔥
✅Новости инвесторам: 04.05.2024 г. завершился 15-й купонный период по 2-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A105TR7):
✅06.05.2024 г. выплачен купонный доход в размере 3 576 000,00 руб., из расчета 11,92 руб. на одну ценную бумагу.
✅06.05.2024 г. погашена часть номинальной стоимости 30 000 000 руб. (10% от номинала), из расчета 100,00 руб. на одну ценную бумагу.
https://www.e-disclosure.ru/portal/company.aspx?id=38504
💥И еще 3 купона ожидают наших инвесторов в мае:
🔸 20.05.2024 г. будет произведена выплата купонного дохода по 5-му выпуску Серии 001P-04 (ISIN: RU000A107ST1) из расчета 14,01 руб. на одну ценную бумагу.
🔸 23.05.2024 г. будет произведена выплата купонного дохода по 4-му выпуску Серии 001P-03 (ISIN: RU000A107217), из расчета 13,16 руб. на одну ценную бумагу;
🔸29.05.2024 г. будет произведена выплата купонного дохода по 3-му выпуску Серии 001P-02 (ISIN: RU000A106GC4) из расчета 10,68 руб. на одну ценную бумагу.
#Arenza🔥
✅Новости инвесторам: завершился 10-й купонный период по 3-му облигационному выпуску ООО «АРЕНЗА-ПРО», (ISIN: RU000A106GC4):
✅02.05.2024 г. Выплачен купонный доход в размере 4 272 000 руб., из расчета 10,68 руб. на одну ценную бумагу.
https://www.e-disclosure.ru/portal/event.aspx?EventId=0lSrMBV8EkC798-CZ14xxEg-B-B
💥И еще 4 купона и погашение номинальной стоимости ожидают наших инвесторов в мае:
🔸❗️06.05.2024 г. будет произведена выплата купонного дохода по 2-му выпуску Серии 001P-01 (ISIN: RU000A105TR7), из расчета 11,92 руб. на одну ценную бумагу и погашена часть номинальной стоимости (10% от номинала) 100 на одну ценную бумагу; ❗️
🔸 20.05.2024 г. будет произведена выплата купонного дохода по 5-му выпуску Серии 001P-04 (ISIN: RU000A107ST1) из расчета 14,01 руб. на одну ценную бумагу.
🔸 23.05.2024 г. будет произведена выплата купонного дохода по 4-му выпуску Серии 001P-03 (ISIN: RU000A107217), из расчета 13,16 руб. на одну ценную бумагу;
🔸29.05.2024 г. будет произведена выплата купонного дохода по 3-му выпуску Серии 001P-02 (ISIN: RU000A106GC4) из расчета 10,68 руб. на одну ценную бумагу.
#Arenza🔥
💥✅Мы рады объявить, что сегодня - 27.04.2024 г. размещение 5-го выпуска облигаций ООО "АРЕНЗА-ПРО" успешно завершилось. Размещено 400 млн руб. (100% номинала).💥
🔥 Хотелось бы выразить глубокую благодарность нашим инвесторам за проявленный интерес и доверие к нашим облигациям.
Финансовое вложение наших инвесторов является свидетельством веры в наш потенциал и планы роста. Мы ценим это признание и понимаем ответственность, которая ложится на нас.
Мы твердо привержены эффективному использованию средств, полученных от размещения облигаций. Эти средства будут инвестированы в развитие нашего бизнеса, чтобы обеспечить прибыльность для всех наших инвесторов.
Отдельно хотелось бы поблагодарить организаторов размещения наших облигаций за профессионализм, оперативность и поддержку. Благодаря их усилиям мы смогли успешно разместить наши облигации и привлечь новых инвесторов.🤝
#Arenza🔥⚡️