TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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

Резултати

Пронајдени 2 слични објави

Пребарај: #dopaje

当前筛选 #dopaje清除筛选
🏆 Info 288 - DEPORTES

@info288_deportes · Post #35406 · 25.09.2024 г., 08:00

💉Dopaje Silvia Calzón deja la dirección del antidopaje nada más llegar y se va con Pedro Sánchez#Dopaje Menos de ocho meses después de ser nombrada directora del antidopaje español -el pasado 26 de enero-, Silvia Calzón deja su puesto en la Celad (Comisión Española para la Lucha Antidopaje en el Deporte) para irse al gabinete de Pedro Sánchez en la Moncloa, donde será confirmada como directora de atención y respuesta a la ciudadanía. Silvia Calzón (Sevilla, 48 años), licenciada en Medicina y Económicas y secretaria de salud durante la pandemia del Covid, fue la encargada por el Gobierno de sustituir a José Luis Terreros, al que el Consejo Superior de Deportes destituyó después de unos positivos sin aclarar y otros relacionados con el pasaporte biológico, y que fueron elevados a la Fiscalía. Desde el Gobierno se interpreta como un ascenso en clave de fichaje estrella la salida de Calzón a la Moncloa, una propuesta de Pedro Sánchez a la que no se puede decir que no, según fuentes del CSD. Otras fuentes, sin embargo, ya la han catalogado como Calzón 'la breve' por su efímera estancia de siete meses largos en el cargo. Hasta la fecha Manuel Quintanar había sido el director del antidopaje más pasajero en el puesto. Calzón ha sido la sexta responsable de la Celad después de Javier Martín del Burgo, Ana Muñoz Merino, Manuel Quintanar, Enrique Gómez Bastida y José Luis Terreros. https://www.abc.es/deportes/silvia-calzon-deja-direccion-antidopaje-pedro-sanchez-20240924135615-nt.html 🏆@Info288_deportes

Hashtags

🏆 Info 288 - DEPORTES

@info288_deportes · Post #35450 · 29.09.2024 г., 09:45

🎾Tenis La AMA recurre la absolución de Sinner y pide «de uno a dos años» de sanción por dopaje#Tenis#Dopaje#Sinner La Agencia Mundial Antidopaje (AMA) anunció este sábado haber presentado un recurso en el caso del tenista italiano Jannik Sinner, número uno de la ATP, absuelto por la Agencia Internacional por la Integridad del Tenis (ITIA) tras haber sido controlado positivo en dos ocasiones al clostebol en marzo pasado. En su comunicado, la instancia «estima que la conclusión de falta o de negligencia no es correcta respecto a las reglas aplicables» y, en consecuencia, «la AMA da un periodo de suspensión de uno a dos años» para el tenista italiano, sin que sus resultados desde los controles positivos, entre ellos el título en el US Open, sean anulados. «Estando el caso en curso ante el TAS (Tribunal Arbitral del Deporte, por sus siglas en francés), la AMA no realizará más comentarios en este punto», precisó el texto. Los dos positivos de Sinner por la sustancia prohibida clostebol ocurrieron el pasado marzo, en el torneo de Indian Wells y luego justo antes del Masters 1000 de Miami, pero no se hicieron públicos hasta finales de agosto, cuando la ITIA absolvió al italiano al término de una investigación. https://www.abc.es/deportes/tenis/sinner-cuerdas-ama-recurre-absolucion-pide-dos-20240928114042-nt.html 🏆@Info288_deportes