Наверняка вы замечали, что в Python есть удобная функция для получения переменной окружения
os.getenv(NAME)
И её "сестра" для создания или изменения переменных окружения
os.putenv(NAME, VALUE)
Но почему-то putenv() не работает как должно. Энвайромент не обновляется!
os.putenv('MYVAR', '1')
print(os.getenv('MYVAR'))
... и ничего 😴
Почему так?
На самом деле энвайромент обновляется, но это значение не добавляется в словарь os.environ.
Откройте исходник функции os.getenv(). Это просто шорткат для os.environ.get()
В то время как putenv() это built-in С-функция.
Словарь os.environ (или точней класс из MutableMapping) создаётся из энвайромента в момент инициализации. Функция putenv() самостоятельно его не изменяет.
В тоже время, когда вы создаёте или изменяете ключ в os.environ, автоматически вызывается putenv() в методе __setitem__().
То есть, технически putenv() всё делает верно, но в os.environ это не отражается. Можно проверить так:
>>> os.putenv('MYVAR', '123')
>>> os.system('python -c "import os;print(os.getenv(\'MYVAR\'))"')
123
Я объявил переменную в текущем процессе и вызвал дочерний процесс, который её унаследовал и получил в составе os.environ.
Аналогично при удалении переменной вызывается еще одна built-in функция unsetenv(), удаляющая переменную из системы.
Итого
▫️ Удобней всего явно обновлять переменные через os.environ
▫️ Есть способ неявно создать/удалить переменную через putenv/unsetenv, что не повлияет на os.environ но изменит энвайромент и передаст изменения сабпроцессам. Но так лучше не делать!
▫️os.environ это просто обертка для built-in функций putenv() и unsetenv().
#basic
Hormoz Farhat — Dastgah Concept in Persian Music (Cambridge University Press, 1990)
#traditional#dastgah#book#Iran
Традиция персидской академической музыки опирается на двенадцать модальных систем — дастгахов (دستگاه). Каждый дастгах представляет собой совокупность мелодий и ладов, на которых исполнитель строит свои импровизации. Мелодии не фиксируются нотами, а постигается музыкантом в ходе практики. Это личная, тонкая и многослойная традиция.
Благодаря обширным исследованиям, включающим беседы с ведущими мастерами и запись их исполнения, Хормоз Фархат сумел приоткрыть секреты дастгаха. В своей работе профессор анализирует интервальные соотношения, мелодические формулы, модуляции и приёмы импровизации каждого дастгаха, а также рассматривает современные авторские произведения, ставшие частью классического репертуара.
🔗Telegram
Various Artists — Classical Music of Iran: The Dastgah Systems (Folkways Records, 1991)
#traditional#dastgah#avaz#kamanche#nei#santur#setar#tar#violin#tombak#Iran
Альбом Classical Music of Iran: The Dastgah Systems, впервые изданный лейблом Folkways Records в 1966 году, представляет слушателям один из краеугольных камней иранской музыкальной традиции — систему дастгяхов (دستگاه). Термин дастгях (دستگاه) по значению близок к музыкальному ладу, но, помимо характерного набора звуков, обладает рядом мелодических формул и стремится передать определенное эмоциональное состояние. У каждого дастгяха (دستگاه) существуют свои «диалекты» — авазы (آواز). Например, дастгях Шур (شور) может включать в себя авазы Афшари (افشاری), Дашти (دشتی) или Баяте Тюрк (بیات ترک), каждый из которых меньший по объёму, но обладает более конкретной мелодической направленностью.
В этой подборке собраны работы выдающихся исполнителей классической иранской музыки, ещё совсем юных на момент записи. Композиции демонстрируют как основные дастгяхи, так и их производные авазы.Ахмад Эбади исполняет дастгях Махур (ماهور) на сетаре, а также аваз Дашти (دشتی) на таре. Хусанг Зариф, мастер тара, исполняет дастгях Чахаргях (چهارگاه) и авазы Баят Тюрк (بیات ترک) и Абу Ата (ابوعطا). Сантур Мохаммада Хейдари звучит в авазе Баят Эсфахан (بیات اصفهان), а кеманче Асгара Бахараи — в авазе Афшари. Вокал Хатере Парване в дастгяхе Шур (شور) и авазе Абу Ата (ابوعطا) — почти акапельный, лишь немного обрамлённый инструментальным фоном — звучит особенно пронзительно и заметно выделяется на фоне остальной подборки. Дастгях Хомаюн (همايون) представлен найем Хасана Кассайи. В интерпретации дастгяха Сега (سهگاه) звучат скрипка Али Таджвиди, вокал Хоссейна Фахтеи и томбак Нассера Эффетаха.
🔗Spotify | AppleMusic | Telegram