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

Резултати

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

Пребарај: #michaelbehringer

当前筛选 #michaelbehringer清除筛选
🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5583 · 04.05.2022 г., 17:00

#Concierto5#ConciertoDeBrandemburgo#Bach#KarlKaiser#GottfriedVonderGoltz#MichaelBehringer Título:Concierto de Brandemburgo No. 5, BWV 1050 Autor:Johann Sebastian Bach Movimientos: 🎵 I. Allegro 🎵 II. Affettuoso en si menor 🎵 III. Allegro Interpretación: Orquesta Barroca de Friburgo Karl Kaiser - Flauta Gottfried Von der Goltz - Violín Michael Behringer - Clavecín Fuente: 🎼 @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5582 · 04.05.2022 г., 17:00

​​​​#Concierto5#ConciertoDeBrandemburgo#Bach#KarlKaiser#GottfriedVonderGoltz#MichaelBehringer CONCERTO DE BRANDEMBURGO No. 5, BWV 1050 Se presenta en 3 movimientos: 🎵I. Allegro 🎵 II. Affettuoso en si menor 🎵 III. Allegro Concertino : clavecín , violín, flauta El clavecín es un instrumento concertino y ripieno. En los pasajes concertinos la parte es obbligato ; en los pasajes ripienos tiene una parte de bajo figurada y toca continuo. El primer Allegro tiene el aire juguetón que le confieren las repeticiones de notas y los tresillos. La parte central tiene un caracter que después veremos en Mozart. El Affetuoso deja soñar libremente la flauta, el clavecín y al primer violín. El Allegro del tercer movimiento conserva el caracter íntimo de todo el concierto. Pero lo más destacable es la cadencia para el clave, que es enfatizada por el violín y la flauta solistas que, en lugar de dejar de tocar bruscamente, van retirándose progresivamente para mostrar el despliegue de la cadencia. La cadencia tiene (en su versión final) una duración de 65 compases, que exhiben un amplio espectro de figuraciones rápidas, desde las semicorcheas a las fusas, y culminan con una secuencia cromática que conduce al ritornello final. El segundo movimiento lleva la indicación affettuoso y prescinde del ripieno, por lo que la alternancia entre el tutti y el concertino queda sugerida por los cambios en la dinámica indicada (piano o forte), y por la alternancia estructural entre el ritornello y los episodios. El tema principal del movimiento está basado en una fuga del quinto libro de piezas para órgano de Louis Marchand , lo que apoya la tesis de que el concierto se compuso para el “duelo musical” en Dresde. El movimiento, que está en la tonalidad de Si menor, comienza con un ritornello que ocupa los cinco primeros compases, en el que el tema principal es expuesto en estrecho por el violín y la flauta, y finalmente por el clave, concluyendo en una semicadencia sobre Fa#. En el tercer Movimiento, muy alegre y humorístico, se combinan los ingeniosos elementos de la fuga con las formas de aria da capo. Es de destacar que al final se repiten literalmente los primeros 78 compases. En el movimiento central Bach emplea uno de los temas de Marchand. Pero Marchand huyó antes de que la competición tuviera lugar, al parecer asustado ante la gran reputación de Bach en virtuosismo e improvisación. El tema del tercer movimiento está tomado de una giga de Buxtehude. En este concierto se presenta, esta cadencia se transforma en una auténtica y maravillosa obra para clave, donde podemos escuchar las más exquisitas variaciones e invenciones sobre los temas tratados anteriormente. El virtuosismo va en aumento hasta requerir del intérprete la mayor destreza imaginable. Todo esto hace que este concierto pueda ser considerado como el primero original para teclado que se haya escrito. @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #5581 · 04.05.2022 г., 17:00

​​​​#Concierto5#ConciertoDeBrandemburgo#Bach#KarlKaiser#GottfriedVonderGoltz#MichaelBehringer CONCERTO DE BRANDEMBURGO No. 5, BWV 1050 Johann Sebastian Bach escribió su quinto Concierto de Brandenburgo , BWV 1050, para clavecín , flauta y violín como solistas, y un acompañamiento orquestal compuesto por cuerdas y continuo . Una versión temprana del concierto , BWV 1050a, se originó a fines de la década de 1710. El 24 de marzo de 1721, Bach dedicó la forma final del concierto al margrave Christian Ludwig de Brandeburgo. Las primeras fuentes existentes de las propias composiciones para conciertos de Bach datan de su período Köthen (1717-1723) , donde el autógrafo de 1721 de los seis Conciertos de Brandenburgo ocupa un lugar central. No obstante, alrededor de media docena de conciertos existentes de Bach, incluidos algunos de los Conciertos de Brandenburgo y modelos perdidos de sus posteriores conciertos de clavecín , parecen haber tenido sus raíces en su período de Weimar. La mayor parte de lo que Bach pudo haber dejado con su empleador en Weimar pereció en un incendio que destruyó a Schloss Weimar en la década de 1770. Cuando Bach agregó el concierto al conjunto de Conciertos de Brandenburgo en 1721, lo había reelaborado para un clavecín de dos manuales, ampliando el acompañamiento con una parte adicional de violonchelo. Debido a la entrada limitada de las partes solistas de violín y flauta, en comparación con la del clavicordio, el concierto puede verse como un concierto de clavicordio , además, el primer concierto de clavicordio jamás escrito. Formalmente, el quinto Concierto de Brandeburgo es un concierto grosso , con un concertino que consta de tres instrumentos. Sin embargo, en todo el concierto, el clavecín toma el papel principal entre los solistas, con, por ejemplo, un largo pasaje en solitario para este instrumento cerca del final del primer movimiento: ninguno de los otros solistas tiene un pasaje en solitario comparable. En este sentido, el concierto se ha llamado el primer concierto para teclado jamás escrito. Vivaldi y otros compositores, ocasionalmente habían dado pasajes solistas a instrumentos de teclado en sus conciertos antes de Bach, pero nunca se había escrito un concierto que le diera al clavicordio un papel solista en toda la escala del quinto Concierto de Brandeburgo y su predecesor BWV 1050a. En ninguna parte del concierto se permite que el violín concertato brille con pasajes solistas violinísticos típicos: Bach asignó todos los modismos específicos de violín solo, incluidos arpegios y pasajes de bariolage similares a violín extendidos, al clavecín. El traverso naturalmente tranquilo tampoco tiene la oportunidad de cubrir las contribuciones del clavecín a la polifonía. Ni el violín ni los solistas de flauta obtienen pasajes solistas más rápido que treinta segundos: estos episodios muy rápidos, típicos de un violín concertato, en este concierto también están reservados exclusivamente para el clavicordio. En la primera versión del concierto, el violín concertato siempre tiene que tocar el piano.o más tranquilo cuando el clavecín toca un pasaje solista. @ClasicaAlAtardecer