Посты с тэгом разработка веб-сайтов


[Перевод] Обзор Python-пакета Datatable

«Пять экзабайт информации создано человечеством с момента зарождения цивилизации до 2003 года, но столько же сейчас создаётся каждые два дня». Эрик Шмидт


Datatable — это Python-библиотека для выполнения эффективной многопоточной обработки данных. Datatable поддерживает наборы данных, которые не помещаются в памяти.

Если вы пишете на R, то вы, вероятно, уже используете пакет data.table. Data.table — это расширение R-пакета data.frame. Кроме того, без этого пакета не обойтись тем, кто пользуется R для быстрой агрегации больших наборов данных (речь идёт, в частности, о 100 Гб данных в RAM).

Пакет


[Перевод] Возможности Python 3, достойные того, чтобы ими пользовались

Многие программисты начали переходить со второй версии Python на третью из-за того, что уже довольно скоро поддержка Python 2 будет прекращена. Автор статьи, перевод которой мы публикуем, отмечает, что основной объём Python 3-кода, который ему доводилось видеть, выглядит как код со скобками, написанный на Python 2. По его словам, он и сам грешит чем-то подобным. Здесь он приводит примеры некоторых замечательных возможностей, доступных лишь тем, кто пользуется Python 3. Он надеется, что эти возможности облегчат жизнь тем, кто о них узнает.



Все примеры, приведённые в этом материале, написаны с использованием Python 3.7. В описании каждой возможности имеются сведения о минимальной версии Python, необходимой для её пр



[Перевод] Python — помощник в поиске недорогих авиабилетов для тех, кто любит путешествовать

Автор статьи, перевод которой мы публикуем сегодня, говорит, что её цель — рассказать о разработке веб-скрапера на Python с использованием Selenium, который выполняет поиск цен на авиабилеты. При поиске билетов используются гибкие даты (+- 3 дня относительно указанных дат). Скрапер сохраняет результаты поиска в Excel-файле и отправляет тому, кто его запустил, электронное письмо с общими сведениями о том, что ему удалось найти. Задача этого проекта — помощь путешественникам в поиске наиболее выгодных предложений.



Если вы, разбираясь с материалом, почувствуете, что потерялись — взгляните на эту статью.
Читать дальше →



[Перевод] Ищем утечки памяти в приложениях на Python

Ola! мы продолжаем серию публикаций приуроченных к запуску курса «Web-разработчик на Python» и прямо сейчас делимся с вами переводом еще одной интересной статьи.

В Zendesk мы используем Python для создания продуктов с машинным обучением. В приложениях с использованием машинного обучения одними из самых распространенных проблем, с которыми мы столкнулись, являются утечка памяти и всплески. Код на Python обычно выполняется в контейнерах с помощью фреймворков распределенной обработки, таких как Hadoop, Spark и AWS Batch. Каждому контейнеру выделяется фиксированный объем памяти. Как только выполнение кода превысит заданное ограничение памяти, контейнер прекратит свою работу из-за ошибок, возникающих по причине нехватки памяти.



Не ORMом единым

Не ORMом единым


Всем привет! Я руковожу отделом партнерской разработки (Partners Development) в сервисе бронирования отелей Ostrovok.ru. В этой статье я хотел бы рассказать про то, как на одном проекте мы использовали Django ORM.


На самом деле я слукавил, название должно было быть "Не ORMом единым". Если вам интересно, почему я так написал, а также если:


  • У вас в стеке Django, и вам хочется выжать из ORM максимум возможностей, а не просто Model.objects.all(),
  • Вы хотите перенести часть бизнес-логики на уровень баз данных,
  • Или вы хотите узнать, почему самая частая отмазка разработчиков в B2B.Ostrovok.ru "так исторически сложилось",

… добро пожаловать под кат.




Не ORMом единым

Не ORMом единым


Всем привет! Я руковожу отделом партнерской разработки (Partners Development) в сервисе бронирования отелей Ostrovok.ru. В этой статье я хотел бы рассказать про то, как на одном проекте мы использовали Django ORM.


На самом деле я слукавил, название должно было быть "Не ORMом единым". Если вам интересно, почему я так написал, а также если:


  • У вас в стеке Django, и вам хочется выжать из ORM максимум возможностей, а не просто Model.objects.all(),
  • Вы хотите перенести часть бизнес-логики на уровень баз данных,
  • Или вы хотите узнать, почему самая частая отмазка разработчиков в B2B.Ostrovok.ru "так исторически сложилось",

… добро пожаловать под кат.




[Перевод] Расширение mypy с помощью плагинов

Добрый день, друзья. А мы продолжаем наращивать интенсивность запуска новых курсов и уже сейчас рады сообщить о том, что в конце апреля стартуют занятия по курсу «Web-разработчик на Python». В связи с этим традиционно делимся переводом полезного материала. Начнём.

Известно, что Python – язык с динамической типизацией. Очень просто писать DSL-подобные фреймворки, которые трудно разобрать инструментами статичной проверки типа. Несмотря на это, с помощью последних функциональных новшеств mypy, таких как protocols и literal types, а также с базовой поддержкой метаклассов и поддержкой дескриптора, мы можем чаще получать точные типы, однако по прежнему трудно избежать ложных срабатываний и других негативных факторов. Чтобы решить эту проблему и избежать необходимости кастомизировать систе



Moscow Python Conf ++ через три дня: о чем расскажет Bobuk и кто в это время выступит в параллельных залах?

Эксперимент по подготовке докладов на Moscow Python Conf ++ с нуля на финишной прямой. Слайды готовы, прогоны провели, осталось только дождаться премьеры — уже в эту пятницу 5 апреля. В расписании 24 доклада про использование Python в продакшене крупных компаний. Под катом — взгляд на организацию глазами программного комитета и смешные проблемы вроде «кого ставить в параллель хедлайнеру, чтобы не было пустых залов и обиженных спикеров».
Читать дальше →



Исключения в Python теперь считаются анти-паттерном

Что такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, хабражители.

Проблемы исключений


Трудно найти недостатки в том, с чем сталкиваешься каждый день. Привычка и зашоренность превращает баги в фичи, но давайте попробуем взглянуть на исключения непредвзято.

Исключения трудно заметить


Существует два типа исключений: «явные» создаются при помощи вызова raise прямо в коде, который вы читаете; «скрытые» запрятаны в используемых функциях, классах, методах.

Проблема в том, что «скрытые» исключения и правда трудно заметить. Покажу на примере чистой функции:

def divide(first: float, second: float) -> float:


Как в Kiwi.com тестируют 1000 проектов на Python

Original english version of this article is here.

Это название доклада Alex Viscreanu на Moscow Python Conf ++. До выступления еще две недели, но я, конечно, уже обо всем расспросил Алекса и под катом поделюсь спойлерами и бэкстейджем подготовки доклада: что это за опенсорсный Зоопарк такой, что он делает с нашим Python кодом и чем отличается от mypy сотоварищи.

— Расскажи немного о Kiwi, чем ты занимаешься в компании?

Kiwi.com — онлайн турагентство с секретным соусом. Компания основана в Чехии в 2012 под названием Skypicker, а в 2016 сервис сменил название и переехал на Kiwi.com. Сейчас Kiwi.com в пятерке крупнейших агрегаторов авиабилетов в Европе.

Классная фича Kiwi.com для пользователей в том, что мы находим варианты стыковок для рейсов авиакомпаний, которые обычно не работают вместе, и берем на себя решение всевозможных проблем при стыковке.