Подразумеваемые неймспейсы или неявные пакеты.
Этот функционал добавлен в 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
Подводка для глаз: тогда и сейчас 🎀
Ещё тысячи лет назад в жарком Египте люди начали подчёркивать глаза тёмной линией. Минералы, сажа и масла превращались в кохль — символ защиты, статуса и силы. Глаза обводили и мужчины, и женщины, веря, что взгляд может многое рассказать 👁️✨
С течением времени подводка превратилась в способ выразить красоту. В античности она подчёркивала форму глаз и черты лица, а в XX веке стала настоящей иконой: немое кино, дымчатые тени, выразительные стрелки — одна линия могла полностью менять образ 🎬
В 60-е годы подводка стала смелой и графичной, настоящим заявлением характера 🩶
Сегодня это целый мир возможностей.Подводка остаётся тем инструментом, с которым взгляд становится выразительным — и каждый день можно создавать свой образ!
А вы помните свою первую подводку?
Попробуй подводки ☁️ и будь неповторимой!
Подводка кремовая Miraculous #miraculouseyes
Подводка маркер с кисточкой S-CLASS #overpowered
#sodalovespopculture
🤩Вдохновляемся с Зарой Ларссон! 🤩
🌸Слушаем песни, любуемся макияжами и создаём свои яркие образы! 🫦
Небольшая подборка с косметикой Soda, которая подойдёт идеально🐚
• Подводка маркер с кисточкой S-CLASS #overpowered, 209 system
• Карандаш для глаз World Of Ice #magicalpower. Коллекция Winx, 001 Cool Down
• Палетка теней Magical Dust #magicalpower. Коллекция Winx
• Палетка теней Heart Of Alfea #magicalpower. Коллекция Winx
• Пигмент-подводка для глаз жидкая Princess Of Lynphea #magicalpower. Коллекция Winx, 002 Nature Touch
#sodalovespopculture
#sodainspiration
🔤🔤🔤🔤🔤🔤🔤🔤🔤 с SODA: Смелость. Креатив. Пугающее очарование!
Хеллоуин — лучший повод выйти за рамки и примерить самый запоминающийся образ!
С косметикой SODA ты сможешь воплотить любую идею — от утончённо-жуткой до эффектно-драматичной. Мы собрали подборку ярких образов и подсказали, какие продукты помогут повторить каждый из них.😄
Твои Must-Haves для Хеллоуина от SODA:
• 🕷️ Палетка теней World Is Yours #softdivalution
• 💋Idol Lip Mousse #softhot100, 104 FEARLESS
• 👁Chan Накладные ресницы Hypnotic Look #softdivalution
• 🕸️ Белая подводка S-CLASS #overpowered, 207 reader
#sodainspiration
🎤✨Kpop Demon Hunters, but make it Soda style!
Если бы наши героини выбирали косметику для своих боевых (и сценических 😏) образов, вот что бы оказалось у них в косметичке:
📌Румяна прессованные #rosycheeks, № 103
📌Подводка маркер с кисточкой S-CLASS #overpowered, 201 regressor
📌Жидкие тени для век Solaria #magicalpower. Коллекция Winx, 003 Crown Princess
📌 Chan Палетка теней World Is Yours #softdivalution
Немного фиолетового, капелька блёсток — и ты уже готова спасать мир (или хотя бы танцпол).
Собери свой demon-hunter look ⚡️
#sodainspiration
H2O just add water energyyyyy 🌊✨
включаем ностальгию и ловим вайб русалок вместе с SODA 🐚
солёный воздух, блеск кожи, влажные текстуры — сегодня ты main mermaid
собрали продукты, чтобы повторить тот самый магический glow 👀
1.Жидкие тени для век Domino #magicalpower. Коллекция Winx, 004 Dragon Fury
2.Хайлайтер STELLAR NEBULA #billionstars
3.Сияющее масло для губ #plumpit, № 101 Fergie
4.Подводка маркер с кисточкой S-CLASS #overpowered, 209 system
Делаем макияж, будто ты только что вышла из воды и готова покорять этот мир 🌊💙
в комментариях пиши, какой сериал вернуть в тренды следующим 👇
#sodainspiration
Одержимы вайбом новых ангелов Victoria’s Secret 💗 Эти выходы, сияние, уверенность — просто мурашки! ❤️ Мы собрали продукты SODA, чтобы передать тот самый подиумный блеск: сияющие глаза, глянцевые губы и дерзость в каждом взгляде ❤️
Вот что тебе нужно для angel energy:
🎀 Подводка с кисточкой S-CLASS #overpowered, 209 system
🎀 Жидкие тени Domino #magicalpower, Winx, 004 Dragon Fury
🎀 Карандаш для глаз Zenith #magicalpower, Winx, 006 Techno
🎀Кремовая подводка Miraculous #miraculouseyes, 304
🎀 Бальзам для губ Legendary Lip Balm #sweetkiss, 001
🎀 Масло для губ ROLLIN' LIP OIL #lipbizkit, 001 Strawberry cake
Немного блеска, уверенный взгляд и улыбка — и ты уже на своём подиуме 💋
#sodainspiration