Обновить
512K+

Python *

Высокоуровневый язык программирования

599,53
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Python: метапрограммирование в продакшене. Часть вторая

Время на прочтение7 мин
Охват и читатели13K

Мы продолжаем говорить о метапрограммировании в Python. При правильном использовании оно позволяет быстро и элегантно реализовывать сложные паттерны проектирования. В прошлой части этой статьи мы показали, как можно использовать метаклассы, чтобы изменять атрибуты экземпляров и классов.



Теперь посмотрим как можно изменять вызовы методов. Больше о возможностях метапрограммирования вы сможете узнать на курсе Advanced Python.

Читать дальше →

Открытый вебинар «Как не нужно писать на Python»

Время на прочтение4 мин
Охват и читатели15K
Всем привет! В рамках нашего курса «Разработчик Python» мы провели ещё один открытый урок на тему «Как не нужно писать на Python». Занятие вёл преподаватель и создатель курса Станислав Ступников, имеющий большой опыт промышленной и научной разработки. Рассматривались антипаттерны программирования, bad practice и прочее зло, о котором нужно знать и которого следует избегать в процессе написания кода.

Подробности смотрите в видео и кратком изложении. Внимание: некоторые примеры кода не рекомендуется запускать на своём компьютере!

Миграция схемы базы данных без даунтайма для postgresql на примере django

Время на прочтение10 мин
Охват и читатели16K

Введение


Привет, Хабр!


Хочу поделиться опытом написания миграций для postgres и django. Речь в основном пойдёт про postgres, django же здесь хорошо дополняет, так как из коробки имеет автоматическую миграцию схемы данных по изменениям модельки, то есть имеет довольно полный список рабочих операций по изменению схемы. Django можно заменить на любой любимый фрэймворк/библиотеку — подходы скорее всего будут похожи.


Не буду описывать как я к этому пришёл, но сейчас читая документацию ловлю на мысли, что нужно было с большей внимательностью и осознанием делать это раньше, поэтому очень рекомендую.


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


Можно разделить логику работы с базой данных большинства приложений на 3 части:


  1. Миграции — изменение схемы базы данных (таблиц), предположим мы всегда запускаем их в один поток.
  2. Бизнес логика — непосредственная работа с данными (в пользовательских таблицах), работает с одними и теми же данными постоянно и конкурентно.
  3. Миграции данных — не изменяют схемы данных, работают по сути как бизнес логика, по умолчанию, когда будем говорить про бизнес логику, будем также подразумевать и миграции данных.

Даунтайм — это состояние, когда часть нашей бизнес логики не доступна/падает/грузится на заметное для пользователя время, предположим это пару секунд.


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

Читать дальше →

Python: метапрограммирование в продакшене. Часть первая

Время на прочтение12 мин
Охват и читатели35K

Многие считают, что метапрограммирование в Python излишне усложняет код, но если использовать его правильно, то можно быстро и элегантно реализовать сложные паттерны проектирования. Помимо этого, такие известные Python-фреймворки, как Django, DRF и SQLAlchemy, используют метаклассы, чтобы обеспечить легкую расширяемость и простое переиспользование кода.



В этой статье расскажу, почему не стоит бояться использовать метапрограммирование в своих проектах и покажу, для каких задач оно подходит лучше всего. Еще больше о возможностях метапрограммирования можно узнать на курсе Advanced Python.

Читать дальше →

Celery в нагруженных проектах: немного практики

Время на прочтение4 мин
Охват и читатели12K
В преддверии нашей Moscow Python Conf++ мы кратко поговорили с Олегом Чуркиным, техлидом финтех-стартапа, о его обширном опыте работы с Celery: полмиллионе фоновых задачах, багах и тестировании.


Читать дальше →

Обучение и тестирование нейронных сетей на PyTorch с помощью Ignite

Время на прочтение17 мин
Охват и читатели41K

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


С помощью ignite можно писать циклы для обучения сети буквально в несколько строк, добавлять из коробки расчет стандартных метрик, сохранять модель и т.д. Ну, а для тех кто переехал с TF на PyTorch, можно сказать, что библиотека ignite — Keras для PyTorch.


В статье будет детально разобран пример обучения нейронной сети для задачи классификации, используя ignite


Читать дальше →

Прием платежей с карты без юр. лица на Яндекс.Деньги

Время на прочтение2 мин
Охват и читатели30K

Open source yandex money donation service


Прием платежей на Яндекс.Деньги физ. лица

  • онлайн платежи с карты, яндекса, телефона
  • добавление метки к платежу
  • получение и проверка оповещений на свой сервер
  • пример автоматизации подписки на Telegram бота

Реализация и описание под катом
Читать дальше →

Идентификация мошенничества с использованием Enron dataset. Часть 2-ая, поиск оптимальной модели

Время на прочтение9 мин
Охват и читатели3.5K

Представляю вашему вниманию вторую часть статьи о поиске подозреваемых в мошениничестве на основе данных из Enron Dataset. Если вы не читали первую часть, ознакомиться с ней можно здесь.


Сейчас речь пойдет про процесс построения, оптимизации и выбора модели, которая даст ответ: стоит ли подозревать человека в мошеничестве?


Enron
Читать дальше →

Парсим Википедию для задач NLP в 4 команды

Время на прочтение3 мин
Охват и читатели12K

Суть


Оказывается для этого достаточно запуcтить всего лишь такой набор команд:


git clone https://github.com/attardi/wikiextractor.git
cd wikiextractor
wget http://dumps.wikimedia.org/ruwiki/latest/ruwiki-latest-pages-articles.xml.bz2
python3 WikiExtractor.py -o ../data/wiki/ --no-templates --processes 8 ../data/ruwiki-latest-pages-articles.xml.bz2

и потом немного отполировать скриптом для пост-процессинга


python3 process_wikipedia.py

Результат — готовый .csv файл с вашим корпусом.

Читать дальше →

Автор Python больше не руководит разработкой. Сделает это язык лучше или хуже?

Время на прочтение7 мин
Охват и читатели16K
Всё Python-сообщество надеется, что это не отразится на экосистеме негативно. Но одного этого недостаточно. Мы вот, например, считаем важным поддерживать сообщество и, как одно из мероприятий, проводим большую конференцию под названием Moscow Python Conf++. Там сможем обсудить этот и другие важные вопросы. А пока частично познакомлю вас с Программным комитетом. А задал им несколько вопросов, которые как раз и раскроют взгляды на экосистему, и расскажут о людях лучше их профессиональных достижений.

Кроме заглавного вопроса, спрашивал вот что:

  • Что порекомендуешь для управления зависимостями?
  • На чем сейчас лучше всего делать backend?
  • TensorFlow все так же рулит для Machine Learning, или пора изучать что-то новое?
  • Почему твоему джуну надо учить Python, а не JavaScript?
  • Говорят, что в вебе backend уже не нужен. Так ли это?
  • 3.x или 2.7?
  • Чем хороший Python разработчик отличается от плохого?

Спойлер: Провокация «3.x vs 2.7» не удалась, ответ однозначный. Отказываться от бэкенда, кажется, еще рано, а на чем его делать, зависит от задачи — кто бы мог подумать.
Читать дальше →

Python 3 в Facebook

Время на прочтение8 мин
Охват и читатели14K
Всем привет!

Запустили юбилейный пятый поток курса «Разработчик Python». Перед стартом каждого потока часто спрашивают какую версию мы используем в обучении (вообще обе и не только, как бы это странно не звучало, учитывая как называется курс, Python) и разные нюансы миграции с одной версии на другую. Сегодня мы хотим поделиться статьёй об опыте миграцию с 2 на 3 в Facebook, которую рассказывали на PyConf.

Поехали.

Переход на Python 3 стал значительно популярней за последние годы, но процесс еще далек от завершения. В инфраструктуре многих крупных компаний, использующих Python, остаются большие блоки кода на Python 2.7, и Facebook — не исключение. Джейсон Фрайд (Jason Fried) посетил PyCon 2018, чтобы рассказать об изменениях, произошедших в компании за последние 4 года — в самом начале Python 3 практически отсутствовал, но в итоге стал основной версией Python в компании. Джейсон помог достичь этой цели, и его доклад [видео на YouTube] — отличный источник идей для других организаций, которые хотят провести миграцию.

Фрайд начал работать в Facebook в 2011 году и быстро понял, что нужно учить Python, если он хочет получать ревью кода быстрее. Чуть позже он понял, что стал основной движущей силой за переход на Python 3 в Facebook. Это никогда не входило в его планы, и случилось само собой по мере его работы с Python.

Читать дальше →

Подборка @pythonetc, сентябрь 2018

Время на прочтение4 мин
Охват и читатели10K


Это четвёртая подборка советов про Python и программирование из моего авторского канала @pythonetc.


Предыдущие подборки:


Читать дальше →

Подслушиваем чат телеграма с помощью своего клиента

Время на прочтение5 мин
Охват и читатели221K

Захотелось как-то мне, чтобы сообщения одного из чатов телеграма сохранялись у меня на диске (не запуская обычного клиента). Не буду раскрывать своих побудительных мотивов, но возможность эта показалась мне нужной и полезной.


Для этого в телеграме есть боты. На Хабре есть несколько статей, посвященных ботам, например: "Чат-помощник на сайт".


Бот позволяет читать и посылать сообщения, для регистрации бота не нужен телефон и количество ботов может быть любым. Но название бота включает в себя слово "bot", что может вызвать у хозяина чата ненужные вопросы.


Но, как говорится, правильно поставленный вопрос — половина ответа.

Читать дальше →

Ближайшие события

“Оказавшись перед Гвидо, что ты ему скажешь” или диалоги о Python с Бобуком

Время на прочтение6 мин
Охват и читатели16K
В августе @eyeofhell, voldar и их коллеги по сообществу MoscowPython начали записывать подкаст Python Junior. Это — расшифровка избранных моментов одного из выпусков.



Валентин Домбровский: Ты ведешь Telegram-канал addmeto. Говоришь про всякое прекрасное будущее, технологии и так далее. Какую роль Python будет играть в этом всем, на твой взгляд?

Григорий Бакунов aka bobuk: Очевидно, куда двигается все программирование. Мы чем дальше, тем ближе к Lego.

Программирование все больше похоже на составление кубиков. Python с самого начала создавался как идеальный клей для таких готовых блоков.

И поэтому Python сейчас так и рванул.

Аудио- и видеоверсия в конце

Идентификация мошенничества с использованием Enron dataset. Часть 1-ая, подготовка данных и отбор признков

Время на прочтение7 мин
Охват и читатели5.7K

Корпорация Enron — это одна из наиболее известных фигур в американском бизнесе 2000-ых годов. Этому способствовала не их сфера деятельности (электроэнергия и контракты на ее поставку), а резонанс в связи с мошенничеством в ней. В течении 15 лет доходы корпорации стремительно росли, а работа в ней сулила неплохую заработную плату. Но закончилось всё так же быстротечно: в период 2000-2001гг. цена акций упала с 90$/шт практически до нуля по причине вскрывшегося мошенничества с декларируемыми доходами. С тех пор слово "Enron" стало нарицательным и выступает в качестве ярлыка для компаний, которые действуют по аналогичной схеме.


В ходе судебного разбирательства, 18 человек (в том числе крупнейшие фигуранты данного дела: Эндрю Фастов, Джефф Скиллинг и Кеннет Лей) были осуждены.


image![image](http://https://habrastorage.org/webt/te/rh/1l/terh1lsenbtg26n8nhjbhv3opfi.jpeg)


Вместе с тем были опубликованы архив электронной переписки между сотрудниками компании, более известный как Enron Email Dataset, и инсайдерская информация о доходах сотрудников данной компании.


В статье будут рассмотрены источники этих данных и на основе их построена модель, позволяющая определить, является ли человек подозреваемым в мошенничестве. Звучит интересно? Тогда, добро пожаловать под хабракат.

Читать дальше →

Все люди не умеют писать код

Время на прочтение10 мин
Охват и читатели34K
В преддверии Moscow Python Conf ++ мы поговорили с Никитой Соболевым, CTO компании «Мы делаем сервисы», о глобальной проблеме управления сложностью кода в разрезе развития языков программирования. А также о том, почему тут со временем ситуация становится только хуже. Плюс расспросили, зачем ему потребовалось создавать собственный линтер.


Читать дальше →

Модернизация IDA Pro. Учимся писать загрузчики на Python

Время на прочтение33 мин
Охват и читатели13K


Привет всем,


цикл статей по написанию разных полезных штук для IDA Pro продолжается. В прошлый раз мы исправляли процессорный модуль, а сегодня речь пойдёт о написании модуля-загрузчика (лоадера) для одной винтажной операционной системы, а именно — для AmigaOS. Писать будем на Python. Также я постараюсь раскрыть некоторые тонкости при работе с релоками (они же relocations), которые встречаются во многих исполняемых файлах (PE, ELF, MS-DOS и т.п.).

Читать дальше →

Символьные вычисления средствами Python. Часть1. Основы

Время на прочтение7 мин
Охват и читатели89K
image

При решении задач математического моделирования процессов и объектов часто очень практично использовать алгоритмы на языке Python с использованием символьных вычислений. Основываясь на библиотеке SymPy, Python с успехом справляется с решением уравнений и систем, интегрированием и дифференцированием, вычислением пределов, разложением в ряд и суммированием рядов, упрощением выражений, выполняет поиск решения дифференциальных уравнений и систем.
Читать дальше →

Доступность игр на pygame

Время на прочтение3 мин
Охват и читатели4.6K

Всем привет.

В статье Звуковые игры: невидимый рынок ждёт героев были рассмотрены звуковые игры с крутым объемным звуком, и библиотеки для его создания.

Ну а я решил начать с малого, и для начала организовать озвучивание синтезатором действий в пошаговых играх на pygame.

Конечно не для всех игр подходит такой прием, но в некоторых очень даже.



Создадим модуль speech.

В нем организуем два варианта работы:

  • подключение к экранному диктору NVDA через его Controller dll;
  • напрямую на синтезатор windows через SAPI5;


Читать дальше →

Блины с ICOй на питоне или как померять людей и проекты ICO

Время на прочтение5 мин
Охват и читатели1.6K

Друзья, добрый день.


Есть четкое понимание, что большая часть ICO проектов это по сути своей совсем нематериальный актив. ICO проект это не автомобиль мерседес-бенц – который ездит вне зависимости от того что его кто любит или нет. И основное влияние на ICO оказывает настроение народа – как настрой на основателя\founder ICO, так и самого проекта.


Было бы хорошо как-то измерить настрой народа по отношению к основателю ICO и\или к ICO проекту. Что и было проделано. Отчет ниже.


Результатом стал инструмент сбора позитивного\негативного настроения из Интернетов, в частности из твиттера.


Моё окружение это Windows 10 x64, использовал язык Python 3 в редакторе Spyder в Anaconda 5.1.0, проводное подключение к сети.


Сбор данных


Настрой буду получать из постов твиттера. Сначала выясню, чем сейчас занимается основатель ICO и насколько положительно об этом отзываются на примере пары известных личностей.


Буду использовать python библиотеку tweepy. Для работы с твиттером необходимо в нем зарегистрироваться как разработчику, см. twitter/. Получить критерии доступа к твиттеру.

Читать дальше →