Собрали в одном месте самые важные ссылки
читайте нас в Twitter
(13.02.2023 - 19.02.2023)
При разработке проектов, и, особенно, распределенных приложений, возникает необходимость использования некоторых частей приложения в качестве отдельных модулей. Например скомпилированные классы для gRPC, модули для работы с БД, и многое другое, могут применяться в неизменном виде в кодовой базе десятка микросервисов. Оставив за скобками копипасту, как «хорошую» плохую практику. Можно рассмотреть git submodules, однако, такое решение не очень удобно тем, что, во‑первых, нужно предоставлять разработчикам доступ к конкретным репозиториям с кодовой базой, во‑вторых, нужно понимать, какой коммит надо забрать себе, и в‑третьих установка зависимостей для кода, включенного в проект как субмодуль, остается на совести разработчика. Менеджеры пакетов (pip, или, лучше, poetry), умеют разрешать зависимости из коробки, без лишних действий, и, в целом, использование менеджера пакетов значительно проще, чем работа с субмодулем. В статье рассмотрим, как организовать реестр пакетов в GitLab, а также различные подводные камни, поджидающие на пути к удобной работе с ним.
В этой статье мы кратко рассмотрим технологию, которая лежит в основе ChatGPT — эмбеддинги, и напишем простой интеллектуальный поиск по кодовой базе проекта.
Наверное странная идея - нарисовать диаграмму миграций проекта Django. Вроде как - а зачем? Но если у Вас некий достаточно большой и достаточно старый проект, да еще над которым постоянно работает хотя бы небольшая команда - разобраться в зависимостях миграций становится уже сложновато. Ну и так - полезно понять, как можно автоматически выбрать из проекта структуру миграций и построить из них диаграмму. Причем - автоматически. Что бы можно было это делать в любой нужный момент.
Python - элегантный язык программирования. Но у него есть слабые стороны. Иногда Python не так элегантен, как должен быть.Например, когда нам нужно выйти из вложенных циклов.
В этой статье, а вернее целой истории, я хотел бы поделиться своим путем становления в качестве разработчика на Python и рассказать о некоторых идеях и советах, которые я усвоил за это время. Начиная с моих первых проектов и заканчивая моей текущей деятельностью, я поделюсь накопленным опытом и попробую осветить проблемы, с которыми я столкнулся на своем пути. Кого-то данная статься вдохновит начать свой собственный путь в разработке, а кому-то будет интересно прочитать историю успешного кейса входа и закрепления в ИТ.
Недавно в комментариях к одному из постов в Варим ML меня спросили, какие навыки и знания нужны, чтобы у нас работать. Вопрос на самом деле очень важный - без правильного ответа невозможно нормально выстроить процессы найма и развития сотрудников. Можно быстро набросать дефолтный список - питончик, ML/DL, докер, и на этом закончить, но я решил зарыться в вопрос пообстоятельнее. Конечно, существуют самые разные родмапы, но лично мне они кажутся излишне общими, а я захотел поразмышлять именно про те скиллы, которые необходимы для работы в Цельсе, а главное про их необходимый уровень.
Применение искусственного интеллекта и машинного обучения в задачах промышленности не настолько распространено, как в других сферах и отраслях экономики вроде банкинга, ритейла, телекома. При этом современные промышленные объекты часто генерируют и собирают большое количество данных, а методы машинного обучения обеспечивают эффективное использование этих данных для решения различных устоявшихся типовых задач: выявления неисправностей и отказов, прогноз качества продукции, определения остаточного срока службы оборудования и многих других.
Вокруг так много фреймворков для инференса нейронных сетей, что сложно понять, какой именно подойдет тебе лучше всего. Я решил, что реализую одну и ту же задачу на нескольких разных технологиях. Так и родился этот репозиторий.
Расскажу о том, как в задаче прогнозирования временных рядов появляются стратегии, какими они бывают и как воспользоваться стратегией в библиотеке ETNA.
В этом посте мы реализуем с нуля GPT всего в 60 строках numpy. Затем мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
В этом материале мы воспроизведём на Python модель BG-NBD (Beta Geometric Negative Binomial Distribution). Она может быть использована для прогнозирования повторных заказов клиентов, чтобы определить пожизненную ценность клиентов (LTV — lifetime value). Она также может быть использована для прогнозирования оттока.
Еще совсем недавно 3D-печать будоражила умы читателей, завораживала своей перспективностью, открывала широкие возможности для творчества, но была недоступна для простого обывателя. Сейчас 3D-принтер можно легко приобрести на китайском рынке по приемлемой цене. Технология 3D-печати не прекратила своего развития: меняются способы печати, появляются более скоростные модели принтеров, но сама технология стала привычным для нас явлением.
Расскажем про принцип Dependency Injection (DI). На конкретных примерах покажем как правильно его использовать в ваших сервисах и какие выгоды он принесёт.
Мы переписали бекенд с FastAPI на Django. Расскажу, почему и как нам пришло это в голову, и что из этого получилось.
Web-фреймворк на основе Werkzeug, Jinja2 и благих намерениях. Изменения описаны по ссылке https://pypi.org/project/flask/2.2.3/. Скачать можно по ссылке: http://pypi.python.org/pypi/Flask/
Швейцарский армейский нож веб-разработки Python. Изменения описаны по ссылке https://pypi.org/project/werkzeug/2.2.3/. Скачать можно по ссылке: http://pypi.python.org/pypi/Werkzeug/
imapautofiler applies user-defined rules to automatically organize messages on an IMAP server.
Модуль для автоматизации тестирования web-приложений. Изменения описаны по ссылке https://pypi.org/project/selenium/4.8.2/. Скачать можно по ссылке: http://pypi.python.org/pypi/selenium/
Статический анализатор Python-кода. Изменения описаны по ссылке https://pypi.org/project/pylint/2.16.2/. Скачать можно по ссылке: http://pypi.python.org/pypi/pylint/
Распределенная очередь задач. Изменения описаны по ссылке https://pypi.org/project/celery/5.3.0b2/. Скачать можно по ссылке: http://pypi.python.org/pypi/celery/
Библиотека и утилита для генерации .pex (Python EXecutable) файлов. Изменения описаны по ссылке https://pypi.org/project/pex/2.1.122/. Скачать можно по ссылке: https://pypi.python.org/pypi/pex/
Мощная система логгирования и платформа агрегации логов. Изменения описаны по ссылке https://pypi.org/project/sentry/23.2.0/. Скачать можно по ссылке: https://pypi.python.org/pypi/sentry/
Библиотека работы с базами данных. Изменения описаны по ссылке https://pypi.org/project/sqlalchemy/2.0.4/. Скачать можно по ссылке: http://pypi.python.org/pypi/SQLAlchemy/
Утилита для управления модулями в Python. Изменения описаны по ссылке https://pypi.org/project/pip/23.0.1/. Скачать можно по ссылке: http://pypi.python.org/pypi/pip/
http клиент/сервер для asyncio. Изменения описаны по ссылке https://pypi.org/project/aiohttp/3.8.4/. Скачать можно по ссылке: https://pypi.python.org/pypi/aiohttp
Мощный web-фреймворк. Изменения описаны по ссылке https://pypi.org/project/django/3.2.18/. Скачать можно по ссылке: http://pypi.python.org/pypi/Django/
Python⇒Speed: Faster pip installs: caching, bytecode compilation, and uv
LangChain vs LlamaIndex: проектируем RAG и разбираемся, что выбрать для вашего проекта
pyper: Concurrent Python Made Simple
Создание персонального AI-ассистента с использованием RAG: пошаговое руководство
Joblib: максимум из параллельных вычислений в Python
Основы очистки данных в data science
6 разочарований при создании командного инструмента
Большое обновление CV-возможностей для фреймворка Simple
Как сделать SMS-оповещение о землетрясениях с GeoJSON и SMS API
Руководство по восстановлению удаленных сообщений и медиаданных в Telegram
Пишем морской бой на VueJS и Python
tuple в CPython – мутабельный! И другие шокирующие детали из C-шной реализации
Python и нечеткое сопоставление: решение проблемы разнобоя в адресах