Собрали в одном месте самые важные ссылки
консультируем про IT, Python
A Directed Acyclic Graph (DAG) is a common data structure used to contain a series of related items that must have certain order or dependency. Topological sorting is used to help find where you might start processing to get in order handling of the items in a DAG.
(30.11.2015 - 06.12.2015)
После 10 с половиной месяцев труда разработчики наконец-то выпустили релизную версию Django 1.9.
По ссылке вы можете ознакомиться со всеми изменениями во всех подробностях, но из самого вкусного можно сразу отметить:
Питонисты Новосибирска, приглашаем вас на встречу сообщества Python сообщества — PyNSK.
12-го декабря (суббота) состоится пятая встреча. Она пройдет в новом для нас месте — Культурный Центр «Этаж» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада
Сегодня я расскажу вам о небольшой части большого проекта — World of Tanks. Многие из вас, наверное, знают World of Tanks со стороны пользователя, я же предлагаю взглянуть на него с точки зрения разработчика. В этой статье речь пойдет об эволюции одного из технических решений проекта, а именно — передаче и обработке результатов боя.
Статья описывает соображения про систему импорта.
Автор рассматривает возможность избавиться глобального состояния, расширение возможностей импорта и другие идеи.
Статья описывает как реализовать конвейер вычислений. На подобии этого:
Статья рассказывает применение анализа данных для вычисления удачных дней для сервфинга
Видео со свежего Moscow Python митапа. Как не превратить свой проект в груду урлов? Как не потерять расширяемость с ростом кодовой базы? Как писать поддерживаемый код? Об этих проблемах и их возможных решениях на примере Django расскажет и покажет Малышев Артем.
Список актуальных учебных материалов для обучения студентов.
Есть как полные курсы, так и отдельные уроки.
Не секрет, что Python (CPython) - динамически типизируемый язык (все типы выясняются во время выполнения программы). Это как дар так и проклятие. С одной стороны - можно быстрее писать программы, с другой - тяжелее найти ошибки. При этом, если была бы статическая типизация - уже на этапе компиляции мы знали бы где мы затупили с типами.
В русскоязычном Python Андрей Власовских из Jetbrains наиболее часто говорит об этой концепции. Представляю сборку материалов от этого докладчика:
Оповещения - это зло для продуктивности, но без них тяжело. Сервер упал - как узнать об этом мгновенно? СМС, письмо на email, оповещение на рабочем столе.
К сожалению, без Qt, Wx и других фреймворков кроссплатформенные оповещения не сделать. Поэтому рассмотрим только Linux. Для linux есть библиотека libnotify и обязка для нее python-notify
Сейчас редкий проект обходится без базы данных. Это может быть реляционная БД, или NoSQL, да может просто текстовые файлы. И каждый раз возникает необходимость посмотреть данные в ней, а иногда и другим показать.
Видео со свежего Moscow Python митапа. В python 3.4 появился asyncio. До сих пор многие разработчики не знают, что это такое, как реализуется асинхронность в Python и в чем её сильные и слабые места. Повторим пройденное и заглянем под капот.
Gitter - это система для создания чатов для пользователей Github. Чаты бесплатны, есть интеграция с Github, есть API - что еще для небольшого чата надо?
Сегодня мы научимся писать в чат с помощью API. В заголовке отметил, что будем писать от своего лица, поэтому будет все просто.
Python поддерживает интересный синтаксис, позволяющий определять небольшие однострочные функции на лету. Позаимствованные из Lisp, так называемые lambda-функции могут быть использованы везде, где требуется функция.
Хочется поделиться ссылкой на статью - https://zxmd.wordpress.com/2013/05/23/django_signals/
Что такое сигнал в Django Framework ?
На бытовом уровне это система (диспетчер сигналов) которая обрабатывает некоторые виды событий которые генерирует система. По сути система сигналов разделяется на два компонента:
sender — компонент посылающий сигнал;
receiver — компонент отвечающий за обработку сигнала. ...
PIL - мощная библиотека для работы с изображениями. С помощью этой библиотеки можно выделять необходимые части картинок, конвертировать между форматами, рисовать, накладывать слои.
В качестве наложения слоев хочется привести удачно позаимствованный пример наложения водяного знака на изображение
LOGGING = { 'handler': { 'mongolog': { 'level': 'WARN', 'class': 'mongolog.MongoLogHandler', 'connection': 'mongodb://localhost:27017/' }, }, 'loggers': { 'django': { 'handlers': ['console', 'mongolog'], 'level': 'DEBUG', 'propagate': True }, }, }
musicbot - позволяет сохранять музыку в Telegram, а затем прослушивать с других Telegram-клиентов
Инструмент позволяет скачивать видео с сервиса Periscope
Модуль позволяет извлечь дату из html страниц. Работает на регулярке и мелких эвристиках. Результативность не очень высокая.
Простой web-фреймворк. Фреймворк написан на голом Python и подходит для изучения строения подобных проектов.
import numpy as np
from numpngw import write_png
# Example 1
#
# Create an 8-bit RGB image.
img = np.zeros((80, 128, 3), dtype=np.uint8)
grad = np.linspace(0, 255, img.shape[1])
img[:16, :, :] = 127
img[16:32, :, 0] = grad
img[32:48, :, 1] = grad[::-1]
img[48:64, :, 2] = grad
img[64:, :, :] = 127
write_png('example1.png', img)
Confit - предоставляет общий API для конфигов. Конфиги можно комбинировать из нескольких файлов.
import numpy as np import wavio rate = 22050 # samples per second T = 3 # sample duration (seconds) f = 440.0 # sound frequency (Hz) t = np.linspace(0, T, T*rate, endpoint=False) x = np.sin(2*np.pi * f * t) wavio.write("sine24.wav", x, rate, sampwidth=3)
import os from aiotg import TgBot bot = TgBot(os.environ["API_TOKEN"]) @bot.command(r"/echo (.+)") def echo(chat, match): return chat.reply(match.group(1)) if __name__ == '__main__': bot.run()
Проект добавляет синтаксический сахар для упрощения тестирования конфигов, уровней доступа и других параметров на ваших серверах.
from prwlock.prwlock import RWLock rwlock = RWLock()
from __future__ import print_function import os import time from multiprocessing import Pool from prwlock.prwlock import RWLock def f(rwlock): for i in range(2): print(os.getpid(), 'Acquiring read lock') rwlock.acquire_read() print(os.getpid(), 'Sleeping for a while') time.sleep(1) print(os.getpid(), 'Releasing lock') rwlock.release() time.sleep(.1) r = RWLock() children = 20 pool = Pool(processes=children) for child in range(children): pool.apply_async(f, [r])
Модуль позволяет обнаруживать в аудио-дорожке сегменты с необходимыми параметрами.
Django-приложение, которое облегчает перевод Django-проектов. Изменения описаны по ссылке https://allmychanges.com/p/python/django-rosetta/#0.7.8. Скачать можно по ссылке: https://pypi.python.org/pypi/django-rosetta
Библиотека и утилита для генерации .pex (Python EXecutable) файлов. Изменения описаны по ссылке https://allmychanges.com/p/python/pex/#1.1.1. Скачать можно по ссылке: https://pypi.python.org/pypi/pex
Система контроля и управления процессами. Изменения описаны по ссылке https://allmychanges.com/p/python/supervisor/#3.2.0. Скачать можно по ссылке: http://pypi.python.org/pypi/supervisor/
Добавляет в модели Django дополнительное поле PhoneNumberField которое будет автоматически валидировать телефонный номер.. Изменения описаны по ссылке https://allmychanges.com/p/python/django-phonenumber-field/#1.0.0. Скачать можно по ссылке: https://pypi.python.org/pypi/django-phonenumber-field/
Best Shift-Left Testing Tools to Improve Your QA
statsmodels: Statistical Modeling and Econometrics in Python
markitdown: Convert Files and Office Documents to Markdown
Царство грибов. Симуляция мицелия на p5py. Битвы гифов. Часть первая
SVG-виджеты для tcl/tk. Финальный аккорд. Часть IV
Implementing Approximate Nearest Neighbor Search with KD-Trees
Пишем свой PyTorch на NumPy. Часть 1
django-liveconfigs - управление настройками в django
Мэтчинг персонажей. Level Hard
Стратификация: как не облажаться с A/B тестами
Матрица ошибок confusion_matrix() в scikit-learn