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

Резултати

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

Пребарај: #tenebrionidae

当前筛选 #tenebrionidae清除筛选
Beetles of the World

@beetles_of_the_world · Post #5798 · 30.03.2026 г., 16:55

Слушая лекции по протистам академика Владимира Васильевича Малахова из курса зоологии беспозвоночных для студентов МГУ без жуков не обойтись. Вот и грегарины тесно связаны с чернотелкой рода Blaps#Tenebrionidae. Грегарины (Gregarinasina) — одноклеточные организмы, внеклеточные паразиты практически всех известных на сегодняшний момент типов беспозвоночных. Beetles of the World🪲 — жуки и не только

Beetles of the World

@beetles_of_the_world · Post #5690 · 01.03.2026 г., 07:20

Высокая холодостойкость жука-чернотелки Centorus rufipes #Tenebrionidae – одна из причин его успешности во время ледниковых периодов плейстоцена. Изучена холодостойкостьCentorus rufipes в сравнении с минимальными температурами в местах его зимовки – в верхних сантиметрах почвы. Выбор этого жука не случаен – это единственный вид семейства чернотелок, обычный в конце плейстоцена в перигляциальных степях юга Западной Сибири, существовавших там во время ледниковых периодов. Напротив, в степных котловинах Южной Сибири и Монголии, современных аналогах перигляциальных степей, чернотелки являются одной из лидирующих групп. Ранее было показано, что вероятной причиной слабой представленности чернотелок в плейстоцене является их недостаточная холодостойкость. Однако этот вывод был недостаточно обоснован без выяснения причин успешности Centorus rufipes. В новой работе проверялись две гипотезы: высокая по сравнению с другими чернотелками холодоустойчивость Centorus rufipes, и относительная мягкость условий его обитания — берегов соленых озер. Были измерены два показателя холодостойкости: температура переохлаждения, при которой происходит замерзание жуков, в среднем составляет –31 °C; температура, при которой гибнет 50% особей, составляет около –27 °C. Эти показатели как минимум на 5° ниже, чем даже у массовых видов чернотелок из Чуйской котловины Алтая, известной своими экстремальными зимними температурами. Таким образом, гипотеза о повышенной холодоустойчивости Centorus rufipes подтвердилась. Напротив, отепляющего влияния озёр в местах его обитания не обнаружено. Полученные результаты – очередной шаг в понимании природной обстановки холодных этапов плейстоцена, в частности, трудно реконструируемых зимних температур, а также в объяснении различий перигляциальных степей и их современных аналогов. Beetles of the World🪲 — первый жучиный

Beetles of the World

@beetles_of_the_world · Post #4717 · 05.07.2025 г., 14:50

Исчезнувшие чернотелки Polposipus herculeanus#Tenebrionidae — эндемики острова Фрегат, эти нелетающие жуки вымерли в природе из-за подорванной человеком кормовой базы и завоза на остров крыс. Вид сохранился в культуре. Beetles of the World🪲 — первый жучиный

Beetles of the World

@beetles_of_the_world · Post #3616 · 09.10.2024 г., 15:52

Скоро «родится» еще один кандидат биологических наук. Хотя это формальность, по совокупности работ и вкладу в систематику чернотелок #Tenebrionidae довольно непростой подтрибы Blaptina И.А. Чиграй уже давно признанный специалист. Но отзыв на автореферат обязательно напишем.

Beetles of the World

@beetles_of_the_world · Post #3946 · 26.12.2024 г., 17:45

Усики — пропуск в трусики 🔞 Одиниз первых постов на нашем канале (2022 года), но он хорошо вписывается в тему «Сексуальная жизнь насекомых» В статье китайских учёных «Precopulatory oral sex contact plays an important role in copulatory success in a cryptic desert beetle» речь идёт о монгольской чернотелке Platyope mongolica Faldermann, 1835 #Coleoptera#Tenebrionidae. В 2021 был описан интересный случай полового поведения. Полевые и лабораторные исследования показали, что полный цикл спаривания включал четыре этапа: преследование, оральный сексуальный контакт, подготовка к спариванию (самец взбирается на самку), и само спаривание. Оральные ласки самцы проводили верхнечелюстными щупиками. Если оральные ласки не удовлетворяли самку, она уклонялась от спаривания. Оказалось, что чем меньше времени самец тратит на оральные ласки, тем меньше у него шансов на совокупление. Самцы с удалёнными усиками не различали пол партнера, и тогда наблюдались гомосексуальные контакты. Beetles of the World🪲

Beetles of the World

@beetles_of_the_world · Post #5771 · 24.03.2026 г., 08:55

Чернотелки #Tenebrionidae как чернокнижники умеют в магию форм и могут стать хоть тарелкой. Такая затейливая форма характерна, например, видам австралийского рода Helea (на видео Helea scaphiformis) или жукам из совсем другого подсемейства (бывшие мохнатки #Lagriinae) — Cossyphus, представители которого есть и у нас. Видео нашел и поделился Алексей. Beetles of the World🪲 — первый жучиный