Для тех кто пишет расширения на PyQt/PySide для CG-софтов.
Когда я только начинал писать тулзы под Maya (тогда еще версия 2010-2011) мне приходилось ручками ставить PyQt4 под Maya. Даже написал мануалы по установке на своём сайте. Но потом стал доступен из коробки PySide и позже он обновится до PySide2. Для некоторых систем была поддержка PyQt5.
И как простому разработчику поддерживать этот зоопарк? Ведь хочется чтобы тул работал на любой версии (вы тоже делали модуль что-то типа import_qt.py?😁)
На помощь приходит проект Qt.py который поставил себе цель унифицировать использование Qt-биндингов вне зависимости от среды где запускается код. Те, кто давно пишут на Qt, скорее всего знают этот проект.
Он стал стандартом для CG-индустрии и используется в топовых студиях и проектах.
Qt․py помогает запускать один и тот же код на разных платформах с разными вариантами Qt-библиотек. Это может быть как интеграция в CG-софт, так и переносимость стендалонов между разными платформами с разными версиями Python.
Я решил рассказать о некоторых особенностях работы с этой библиотекой.
Сегодня о том, как установить и использовать Qt․py и что это вам даёт.
Установка
pip install Qt.py
Чтобы начать использовать Qt․py в коде достаточно заменить импорт вашего варианта Qt-биндинга на Qt․py
from [PySide|PyQt4|PySide2|PyQt5] import QtWidgets
=>
from Qt import QtWidgets
Теперь ваш код будет поддерживать любой вариант биндинга Qt в Python.
При этом не потребуется использовать if-else конструкции под разные версии. Все вызовы теперь одинаковы.
Всё что нужно сделать, это написать его по правилам PySide2. Именно эта версия была взята за основу.
Приоритет импорта такой:
1. PySide2
2. PyQt5
3. PySide
4. PyQt4
Что именно загрузилось можно посмотреть в переменной __binding__
>>> import Qt
>>> Qt.__binding__
'PySide2'
Приоритет имопрта можно изменить через переменные QT_PREFERRED_BINDING и QT_PREFERRED_BINDING_JSON. Причем под каждый проект оверрайды можно настраивать индивидеально.
#qt#libs
Alhaji Bai Konte, Dembo Konte, Ma Lamini Jobate — Gambian Griot Kora Duets (Folkways Records, 1979)
#kora#griot#Gambia
Кора похожа на арфу, со струнами, натянутыми на половинку тыквы. На протяжении веков кора была визитной карточкой сложной полиритмической западноафриканской музыки. Альбом Gambian Griot Kora Duets документирует эволюцию использования коры в традиционной музыке Гамбии. Он был записан при участии Альхаджи Бай Конте, его сына, Дембо Конте, и еще одного музыканта, Ма Ламини Джобате. Исполнители на коре неразрывно связаны с традицией Джали, представителями которой являются семьи гриотов Западной Африки. Гриоты – хранителями местной культуры, типа ашугов или трубадуров. В то же время этот альбом ознаменовал начало международного интереса к коре. После записи пластинки Дембо Конте отправился в турне по всему миру, выступил в легендарной программе Джона Пила на BBC в 1989 году и сотрудничал с влиятельной группой Mustaphas 3.
🔗Spotify | AppleMusic | Bandcamp
L'Orchestre Kanaga de Mopti — L'Orchestre Kanaga de Mopti (Mali Kunkan, 1977)
#funk#afrobeat#griot#dogon#Mali
В 1977 году малийский правительственный лейбл Mali Kunkan выпустил серию пластинок, среди которых был и этот священный Грааль малийской музыки. Ансамбль происходит из города Мопти и назван по имени большой церемониальной маски Канага народа Догонов.
На первой стороне пластинки первым идет трек Kulukutu, вокальное вступление которого посвящено празднованию бракосочетания. Композиция N'Do N'Do обычно сопровождает танец, исполняемый детьми в дни Рамадана. Завершает первую сторону трек Sare Mabo о ткачах племени Догонов.
Вторая сторона открывается композицией Kanaga, рассказывающей о маске Догонов и танцорах, которые носят ее во время ритуальных церемоний. Затем следует песня в стиле певцов-гриотов Gambari, исполняемая во время свадебной церемонии и восхваляющая могущество жениха. Завершающий трек Sory Bamba посвящен лидеру группы Сори Бамба.
Spotify | AppleMusic | VK
Taste of Africa: Сказания - Эпос о Сундиате 🦁🌍✨
В Западной Африке есть тексты, которые слушают сердцем. Один из самых известных - Эпос о Сундиате (Мали) 🎙️🥁 Его веками передают гриоты: хранители памяти, музыканты и рассказчики🎶📜
Сундиата Кейта - легендарный основатель империи Мали XIII века. Его называют «львом» 🦁 не потому, что он родился сильным, а потому что стал им - через путь, который знаком любой культуре мира: предназначение, испытание, изгнание и возвращение 🔥
В сюжете о принце, вынужденном уйти в изгнание, а затем вернуться, чтобы вернуть свой трон, легко узнать архетип, знакомый по мультфильму “Король Лев”
Что делает этот эпос таким живым и современным?
🔮 Пророчество
История начинается с предчувствия: судьба ещё не наступила, но уже звучит в воздухе.
🪄 Магия как язык мира
Здесь магия - способ объяснить невидимое: силу слова, амулетов, благословений, защиту рода и общины.
🧭 Путь героя
Сундиата проходит через уязвимость и сомнение - и именно это превращает его в лидера. Не «идеального», а настоящего.
🤝 Община важнее одиночки
В центре - не только герой, но и союзники, род, память предков. Победа - это всегда коллективный ритм.
И самое главное: этот эпос - доказательство того, что музыка и устное слово могут быть архивом цивилизации. В в западноафриканской традиции гриотов говорят, что пока звучит голос гриота - жива история. Пока держится ритм - держится и связь поколений🥁🕊️
По сути путь Сундиаты это и личный жизненный путь человека, который описывается в разных культурах и современных учениях примерно одинаково: Так что на каком бы отрезке вашего пути вы бы сейчас не находились, знайте, что впереди трон царствия своей собственной жизни🌍🎶
🌟Ритмическое путешествие продолжается - Король Лев внутри каждого🌟
#TasteOfAfrica#Sundiata#Mali#WestAfrica#Griot#OralTradition#AfricanHistory#WorldCulture🦁✨
🌟🔔 «Ритмическое путешествие продолжается!» 🥁🌟
Гриоты — мастера ритма, слова и памяти 🎶🥁🗣️
В традициях Западной Африки гриот (джели/джали) — артист и хранитель того, что доверяют времени: имя рода — честь семьи — нить преемственности. Он выходит к людям с тремя нитями в ладонях — памятью, голосом и ритмом — и делает главное: собирает общину в одно целое.
До письменных законов и документов мир во многом держался на ритме: он связывал разум, душу и тело, выравнивал дыхание и шаг, настраивал внимание — и давал словам меру и вес.
🥁 Ритмом гриот сводит голоса в общее “мы” и охлаждает спор, пока он не вспыхнул враждой.
🗣️ Словом он поднимает планку чести похвалой, возвращает меру точной сатирой, скрепляет союзы памятью имён и обещаний.
🎶 Музыкой (иногда под кору или балафон) он учит слушать, передаёт нормы через чувство и переводит прошлое в поступок — прямо сейчас.
А теперь загадка!
Что связывает прошлое, настоящее и будущее ⏳ — и одновременно разум, душу и тело 🧠❤️🧍?
Это — РИТМ 🥁✨
🔄 Сохраняйте пост и приглашайте друзей в наше увлекательное путешествие вокруг света африканских ритмов!🎶🌍
#TasteOfAfrica#WestAfrica#Africa#AfricanCulture#OralTradition#Griot#Jeli#Jali#Storytelling#Music#Traditions#Heritage#Culture#History#Kora#Balafon#Mali#Senegal#Gambia#Guinea