Подразумеваемые неймспейсы или неявные пакеты.
Этот функционал добавлен в Python 3.3
Что он означает?
Ранее, до 3.3 пакетами считались лишь директории, в которых есть файл __init__.py.
Этот файл одновременно являлся свидетельством того, что директория это Python-пакет, и служил "телом" этого пакета. То есть местом, где можно написать код, как это делается внутри модуля. Этот код исполняется в момент импорта пакета, так что его принято называть "код инициализации пакета".
Начиная с версии 3.3 Любая директория считается пакетом и Python будет пытаться использовать любую директорию для импорта.
Конечно, не любую в файловой системе, а только те что находятся в sys.path.
Это значит, что теперь __init__.py нужно делать только если:
🔸 вам требуется создать код инициализации пакета
🔸 нужна совместимость со старыми версиями Python
На мой взгляд это немного упрощает разработку, делает её чище, но с другой стороны убивает некоторую однозначность происходящего.
Например, я создал репозиторий со своей библиотекой и рядом положил код примеров или тестов.
repo_name/
my_library/
__init__.py
main.py
examples/
exam1.py
exam2.py
В этом репозитории пакетом является только my_library, остальные директории это не пакеты, это просто дополнительный код в файлах. Директория examples не добавлена в sys.path, в ней нет рабочих модулей. Но если она лежит рядом с my_library, то Python вполне сможет импортнуть из неё модули, так как посчитает что examples это валидный пакет.
Конечно, пример несколько надуманный. Никто не будет добавлять корень репозитория в sys.path. Но, я думаю, суть ясна. Иногда директория это просто директория а не пакет!
#basic#pep
"Down with the men, with the swords
down with the sleepy fellows—
hundreds from under a wing
dozens from a feather tip!"
— The #Kalevala: 43: 227 — 230
(Bosley translation)
Art: Joseph Alanen🇫🇮 — The defense of the Sampo (1910 – 1912)
The text underneath the painting in a runic style font is verse 227 in Finnish.
ДЕНЬ "КАЛЕВАЛЫ": ИСТОРИЯ
28 февраля 1835 года финский врач и фольклорист Элиас Леннрот, подписав инициалами "E.L." предисловие к эпосу "Калевала", передал рукопись в типографию. Этот день войдет в историю как День "Калевалы".
Первый раз День «Калевалы» отметили в 1865 году в связи с 30-летием выпуска первого издания эпоса. Финляндия на тот момент входила в состав Российской Империи в качестве Великого княжества Финляндского, а значит можно считать, что День «Калевалы» был общим праздником. «Калевалу» знали и изучали и в Суоми и в России.
Столетие первого издания эпоса в 1935 году Финляндия уже встречала самостоятельным государством. Основой и фундаментом финского национального сознания был именно эпос «Калевала». В Российской Карелии также событие не осталось незамеченным, но более того – объединило научные силы исследователей по обе стороны границы. Однако, военные конфликты ХХ в. надолго прекратили эту совместную работу.
В конце 1930-х-начале 1940-х годов, когда прошла Зимняя война, а затем и война-продолжение было, конечно, не до широких праздников. Однако, тема "Калевалы" витала не только в научных кругах, а все больше использовалась для пропаганды и уже не сходила с передовиц газет и журналов, теснясь рядом с боевыми сводками.
К Дню "Калевалы" 1943 года стало ясно, что Германия не выиграет войну и что мирные условия могут быть жесткими для Финляндии. Газеты сменили риторику и в отношении "Калевалы", и в отношении политических взглядов на национальные вопросы.
В Советском союзе в послевоенные годы юбилейные Дни "Калевалы" проходили с большим размахом. В 1948 году, в год 99-летия полного издания поэмы Элиаса Леннрота, был объявлен всесоюзный конкурс художников на создание иллюстраций к эпосу. Власти готовились к вековому юбилею первого полного издания эпоса.
В 1949 году уже 9 января вышло «Постановление Политбюро ЦК ВКП(б) о мероприятиях по проведению 100-летия со времени издания карело-финского эпоса «Калевала»». В рамках празднования проходили концерты с выступлением сказителей и рунопевцев, которые не только заучивали руны из леннротовской "Калевалы", но и сами писали руны нового времени: про Антикайнена и Сталина, про советские стройки и жизнь в колхозах, а также хвалебные песни в честь коммунистического правительства. Власть такие песни, конечно, любила и щедро одаривала грамотами и титулами. Малограмотные колхозники-кантелисты и исполнители народных рун становились членами Союза писателей, при этом писать литературные произведения и тем более издаваться было совсем не обязательно.
В 1970-80 гг. праздники с фокусом на калевальскую поэтику проходили в рунопевческих деревнях не только в конце февраля, но и в летние месяцы. Деревни очень долго хранили традиции предков, отмечая праздники с христианским и языческим подтекстом: Иванов день, Петров день… В Советском союзе у властей была другая идеология, поэтому дедовские праздники легко маскировались в праздники с фольклорным уклоном, с выступлением местной самодеятельности.
Уже многие годы День "Калевалы" отмечается и в Финляндии, и в России: проходят научные конференции, детские музейные праздники, конкурсы чтецов и иллюстраторов эпической поэмы и другое. «Калевала» все ещё интересует современное сообщество, объединяя людей для совместной исследовательской работы и творческого переосмысления общего наследия.
Текст и фото: Татьяна Бердашева
#berdasheva#kalevala#historia#karelia#28февраля