Подразумеваемые неймспейсы или неявные пакеты.
Этот функционал добавлен в 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
Tonnel Network Chooses Self-Hosting Over High Vercel Costs
#Vercel#SelfHost
Tonnel Network switched to self-hosting their Marketplace MiniApp due to costly charges from Vercel exceeding $1000. They opted for a more economical server rental option.
Source: link
@tonlines
#typescript#examples#nextjs#vercel
Vercel offers ready-to-use templates and examples that help you quickly start web projects with best practices and optimized settings, especially for frameworks like Next.js. These templates save you time by handling setup and deployment details, letting you focus on coding. You can also contribute your own examples easily using provided commands and guidelines. Vercel automatically checks your code style and quality before commits, ensuring clean code. Plus, it integrates with Git and runs tests before deployment to catch bugs early. This makes building, deploying, and maintaining fast, reliable web apps much easier and faster for you.
https://github.com/vercel/examples
🎮 DOOM запустили на ChatGPT
Люблю наблюдать за тем, как эту легенду запускают на разных устройствах — видел даже запуск на огромном битном «компьютере» с «экраном» в майнкрафте не так давно.
Тут тоже интересно: после предварительной подготовки прямо в диалоге с ChatGPT открывается 🧙
Нет, ChatGPT не пишет с нуля код всей игры, разочарую вас🐸
Делал тот же чувак, который ранее предложил вариант captcha (бесячего теста, что ты не робот) с проверкой твоих навыков стрельбы в DOOM 😁
Душные пояснения для тех, кому интересно, как так получилось:
Разработчик взял шаблон ChatGPT App на Next.js, добавил инструмент play_doom и задеплоил всё на Vercel.
Chatgpt не просто описывает игру, а реально запускает рабочий Doom прямо в чат: серверный и клиентский рендеринг работают одновременно.
- Пояснения, как работает эта связка ChatGPT+Vercel
- Оригинальный пост
⚠️ Видео и пост из X (бывший Twitter), который сейчас запрещен в РФ.
#ИИ#ChatGPT#DOOM#AI#NextJS#Vercel#GameDev