Публикации о языке Python

[Из песочницы] Как я парсил всю базу данных игр Metacritic-а

Metacritic — англоязычный сайт-агрегатор, собирающий отзывы о музыкальных альбомах, играх, фильмах, телевизионных шоу и DVD-дисках. (с википедии).

Использованные библиотеки: lxml, asyncio, aiohttp (lxml — библиотека разбора HTML страниц с помощью Python, asyncio и aiohttp будем использовать для асинхронности и быстрого извлечения данных). Также будем активно использовать XPath. Кто не знает, что это такое, отличный туториал.
Читать дальше →



[Перевод] Чистая архитектура в Python: пошаговая демонстрация. Часть 3

Содержание


Сценарии (часть 2)


Git tag: Step06


Теперь, когда мы реализовали объекты запроса и ответа, добавляем их. Помещаем в файл tests/use_cases/test_storageroom_list_use_case.py следующий код:

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



Python: коллекции, часть 3: конкатенация, добавление и удаление элементов

Продолжим изучать общие принципы работы со стандартными коллекциями (модуль collections в ней не рассматривается) Python. Будут рассматриваться способы конкатенации (объединения) коллекций с формированием новой или изменением исходной, а также способы добавлять и удалять элементы в изменяемые коллекции.

Данная статья является продолжением моей статьи "Python: коллекции, часть 2: индексирование, срезы, сортировка".

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.
Читать дальше →



Генерация фиктивных данных с Elizabeth: Часть II


Ранее я уже публиковал статью о том, как генерировать фиктивные данные, при помощи Elizabeth — библиотеки для языка программирования Python. Статья, которую вы читаете является продолжением предыдущей, потому я не буду приводить основ работы с библиотекой. Если вы пропустили статью, поленились прочитать или просто не захотели, то, вероятно, захотите сейчас, ибо эта статья подразумевает, что читатель уже знаком с основами библиотеки. В этой части статьи, я буду говорить о том, каким образом организовывать генерацию фиктивных данных в собственных приложениях, расскажу о нескольких, на мой взгляд, полезных особенностях библиотеки. Примеров кода будет не много, но по сути.

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



Bitcoin in a nutshell — Cryptography

Одна из причин, почему Bitcoin продолжает привлекать столько внимания — это его исключительная «математичность». Сатоши Накамото удалось создать систему, которая способна функционировать при полном отсутствии доверия между ее участниками. Все взаимодействия основаны на строгой математике, никакого человеческого фактора — вот в чем была революционность идеи, а не в одноранговой сети, как многие думают. Поэтому первую главу я решил посвятить именно математическим основам Bitcoin.

Ниже я постараюсь объяснить вам самые базовые вещи — эллиптические кривые, ECC, приватные / публичные ключи и так далее. По возможности я буду иллюстрировать свои слова примерами кода, преимущественно на Python 2.7, если что-то непонятно — спрашивайте в комментариях.





[Из песочницы] Атвтопоиск IP-адресов



Зачем вообще искать IP?


На днях я столкнулся с задачей отправки обновлений базы данных на определенные терминалы. Но прежде чем отправлять, мне необходимо было выяснить куда отправлять, либо откуда забирать. На первый взгляд логичнее сообщить терминалам IP-адрес сервера и забирать данные, но следующие нюансы помешали такой реализации:

  • Данные терминалы будут общедоступными и работать в режиме киоска. Поэтому идея добавить на них какую-нибудь панель администрирования, сразу же отпадала, ибо случайный юзер сможет «наклацать» в настройках IP-адреса что ему заблагорассудится.
  • Можно было бы зашить в терминалы IP-адрес сервера обновлений, но так как сервер, в моем случае, — это всего лишь десктопное приложение, которое пользователь может запускать на любом компьютере в подсети, т



Приглашаем на Moscow Python Meetup 19 января



Приглашаем разработчиков, тимлидов и всех, кто так или иначе связан с разработкой на Python, принять участие в Moscow Python Meetup, который состоится 19 января, в четверг, в московском офисе Mail.Ru Group. В программе встречи три доклада, подробности о них читайте под катом.
Читать дальше →



PyNSK #11 — первая встреча питонистов Новосибирска в 2017 году

Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу Python сообщества — PyNSK.

22-го января (воскресенье) состоится очередная, 11-ая, встреча. Она пройдет в Культурном Центре «Этаж» и начнется в 13-00.

Регистрация: https://bit.ly/pynsk11_reg



В прошлый раз мы долго обсуждали тесты: когда их стоит писать, а когда не стоит. Немного посмеялись над извилистым путем развития стартапа с Python в качестве основного языка. В этот раз мы собрали несколько мини-докладов: про управление кодом в проекте, python + android и полноценный доклад-обсуждение про смысл сообществ.

Вот такие доклады послушаем:
Читать дальше →




Python-digest #160. Новости, интересные проекты, статьи и интервью [9 января 2017 — 15 января 2017]

Мы тут на хостинг собираем - помогите нам. Форма (спасибо всем, кто помогает) Может у кого есть бесплатный хостинг для проекта?

Оставляйте свои комментарии к выпуcкам, пишите нам в Slack (инвайт по ссылке), добавляйте свои новости через специальную форму. Следите за всем этим безобразием в RSS, Twitter или Telegram @py_digest

Поддержите проект рублем или руками




Ловушка при подсчете связанных объектов в Django

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

Пример:

class Category(models.Model):
    title = models.CharField(max_length=50)

class Article(models.Model):
    title = models.CharField(max_length=50)
    category = models.ForeignKey(Category)
    approved_at = models.DateTimeField(blank=True, null=True)

Видим, что поле Article.approved_at хранит время одобрения статьи, причем оно может быть пустым (т.е. NULL в базе данных).

Создадим тестовые данные:

from django.utils import timezone

c1 = Category.objects.create(title='c1 ...