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

Резултати

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

Пребарај: #box

当前筛选 #box清除筛选
Main Event | Sport News

@maineventnews · Post #96 · 22.07.2024 г., 20:01

Jake Paul knocked out Mike Perry in the 6th round 👊 I expected to win. I should have won in the first round, but Perry survived. Mike Tyson, you're next, sign the contract. #Box 👁Subscribe to Main Event | Sport News

Hashtags

Main Event | Sport News

@maineventnews · Post #60 · 18.07.2024 г., 13:01

Jake Paul on the fight with Mike Perry: "Maybe at the beginning, he’ll land a couple of heavy shots, maybe he’ll be all wild and unpredictable, but as the fight progresses, I’ll start breaking him down with my footwork, jab, and body shots." #Box 👁Subscribe to Main Event | Sport News

Hashtags

Main Event | Sport News

@maineventnews · Post #52 · 17.07.2024 г., 12:00

Diaz Sues Organizers of Fight with Masvidal #box#mma Nate Diaz has filed a lawsuit against the organizers of the fight with Jorge Masvidal. Nate claims he had an agreement for a $10,000,000 payout for the fight. He received an advance payment of $1,000,000, with the remaining $9,000,000 to be paid after the fight. The lawsuit states that the company is refusing to make the payments, claiming that the event was unprofitable. 👁Subscribe to Main Event | Sport News

Hashtags

科技&趣闻&杂记

@kejiqu · Post #3472 · 26.05.2025 г., 08:08

ChatGPT深度研究功能现在可以连接并读取来自Box和Dropbox网盘中的数据 据 OpenAI 官方发布的消息,目前 ChatGPT 深度研究功能已支持连接 Box 和 Dropbox 平台的账号,添加账号并授权后 ChatGPT 可以通过读取用户网盘中存储的文件来优化研究报告。 用户在连接账号后可以将 Dropbox 等网盘的指定路径作为数据来源,这样 ChatGPT 在进行深度研究功能时也会读取这些文件,如果有重要数据则可能会将这些数据添加到研究报告中。 用户自己提供数据还有个好处是 ChatGPT 可以生成更契合用户需要的研究报告,用户提供的数据越多并通过提示词引导 ChatGPT,最终生成的效果可能要比 ChatGPT 直接从互联网上抓取数据更好。 另外 OpenAI 也准备为 ChatGPT 带来 MCP 协议的支持,到时候 ChatGPT 也可以通过 MCP 连接外部应用程序获取数据,到时候无论是日常提问还是撰写深度研究报告可能都会更方便。蓝点网 🏷#ChatGPT#Box#Dropbox 📢频道👥群组📝投稿

探索号

@seeker_rc · Post #19595 · 04.05.2026 г., 14:55

给 sing-box config 写了一套完整的 TypeScript 类型 以前需要同时维护几份 sing-box config 时搓的东西,目前已经维护一年半了。 ⦁ 主要特点是通过 ts 的泛型校验一下 tag ,sing-box tag 太多了,写的时候经常忘。 ⦁ 用 ts 的话可以看一下 playground ,其实就是把配置拆碎,然后组合成一份 sing-box config ,这样子维护几份 sing-box config 就比较省力(因为几份 config 里会重用大部分 rule-set, outbounds 等等)。 ⦁ 如果没这个需求也可以直接用 json schema ,直接在现有的 json 里加上就好了,在 LSP 加持下... via V2EX 分享创造 标签: #sing#box#config ⚡️探索号频道 ⚡️探索者频道 ⚡️探索者交流群 ⚡️ Youtube 频道:科技探索者 每天推荐有趣内容,欢迎订阅、转发。