Собрали в одном месте самые важные ссылки
консультируем про IT, Python
Утилита позволяющая измерить процент покрытия тестами. Скачать можно по ссылке: https://pypi.python.org/pypi/coverage/
(18.01.2016 - 24.01.2016)
DSF объявил грант для привлечения разработчиков. Круглые суммы.
Это рассказ, о том, как мне удалось сделать для себя инструмент, который с минимальным моим участием и минимальным дополнительным весом в рюкзаке, помогает сделать красивые слайдшоу. И конечно же рассказ о python, ffmpeg и linux на android.
walrus это легковесная Python библиотека для Redis. В этой статье вы найдете экскурсию по библиотеки. Также показаны примеры использования.
В этот раз автор расскажет о реализации унарных операций
Cookiecutter - это шаблоны проектов. В статье рассмотрен шаблон Django проекта
FlyElephant — это платформа, которая предоставляет ученым готовую вычислительную инфраструктуру для проведения расчетов, автоматизирует рутинные задачи и позволяет сосредоточиться на основных вопросах исследований.
Статья описывает использование Python и Bokeh для построения графиков в National Institute of Standards and Technology (NIST)
Статья показывает как реализовать полно-текстовый поиск на PostgreSQL и MySQL
В contextlib модуль содержит утилиты для работы с контекстом и оператор with
Вообще лирическое вступление было навеяно вполне конкретной историей про сломанный гитхаб. Сделанная на заре одного из проектов синхронизация домашнего репо в гитхаб решила проблему переезда. Потом про костыль забыли. Древнее зло уснуло и терпеливо ждало своего часа. В один прекрасный день скайнет новый сотрудник решил привести в порядок тот самый домашний репозиторий. И самым популярным вопросом среди программистов в тот день было «коллега, а вы не видели мою ветку 0022? ну такая, с багфиксами». Руководство опс-тим было спокойно как никогда: гит — это распределенная система, версия кода хранится на персональном компьютере каждого разработчика. Давайте уже как-нибудь разберитесь между собой и не отвлекайте нас от сборки наших ядер и тюнингов сетевых стеков.
Автор статьи продемострирует, как подключить несколько камер к вашей Raspberry Pi...и получить доступ ко всем из них, используя один скрипт на Python.
Замечено, что новичкам трудно перейти от теории к практике - заставить себя писать, а не только читать. Чтобы помочь мы постоянно публикуем различный материал и указываем как применить эти знания на практике.
В этот раз решили написать 2 небольших проекта:
Утилита позволяет установить программную задержку, процент потерь
#!/usr/bin/env python3 import random import logging import tornadoredis from tornado import gen, ioloop from torrelque import Torrelque logger = logging.getLogger(__name__) @gen.coroutine def produce(): redis = tornadoredis.Client() queue = Torrelque(redis, ioloop.IOLoop.current()) while True: for _ in range(5): task = {'value': random.randint(0, 99)} logger.debug('Produced task %s', task) yield queue.enqueue(task) yield gen.sleep(10) @gen.coroutine def process(task_data): logger.debug('Consmed task %s', task_data) yield gen.sleep(1) @gen.coroutine def consume(): redis = tornadoredis.Client() queue = Torrelque(redis, ioloop.IOLoop.current()) while True: task_id, task_data = yield queue.dequeue() if not task_id: continue try: yield process(task_data) yield queue.release(task_id) except Exception: logger.exception('Job processing has failed') queue.requeue(task_id, delay = 30) @gen.coroutine def main(): for _ in range(4): ioloop.IOLoop.current().spawn_callback(consume) yield produce() if __name__ == '__main__': logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s %(message)s') ioloop.IOLoop.instance().run_sync(lambda: main())
Библиотека поддерживает несколько базовый типов данных. Ниша библиотеки - хранение сложных структур данных
{% load django_vimeo_tags %} The video tag: {% vimeo instance.video width=600 as video %} <video width="600" loop="loop" autoplay="autoplay" poster="{{ video.optimal_picture.link }}"> <source src="{{ video.optimal_file.link_secure }}" type='{{ video.optimal_file.type }}'> {% trans 'tag "video" not supported by your browser' %} <a href="{{ video.optimal_download.link }}">{% trans 'download video' %}</a>. </video> {% endvimeo %} Or embed shortcut: {% vimeo instance.video width=600 %}
from easy_class import EasyClass, StringVariable, IntegerVariable class MyClass(EasyClass): attr1 = IntegerVariable() attr2 = StringVariable()
import serial import streamexpect # timeout=0 is essential, as streams are required to be non-blocking ser = serial.Serial('COM1', baudrate=115200, timeout=0) with streamexpect.wrap(ser) as stream: stream.write('\r\nuname -a\r\n') match = stream.expect_bytes('Linux', timeout=1.0) print(u'Found Linux at index {}'.format(match.start))
Модуль позволяет использовать несколько таймеров с одним секундомером, указывать времена срабатывания, текст сообщений, перезапускать таймеры.
from pickleshare import * db = PickleShareDB('~/testpickleshare') db.clear() print "Should be empty:",db.items() db['hello'] = 15 db['aku ankka'] = [1,2,313] db['paths/are/ok/key'] = [1,(5,46)] print db.keys()
Модуль подходит для препроцессинга твиттер данных для машинного обучения
Модуль реализован на основе модуля signal
from timeoutcontext import timeout, TimeoutException from time import sleep try: with timeout(1): sleep(2) except TimeoutException: print('timeout')
До:
Downloads
│ ├── project.docx
│ ├── 21 Guns.mp3
│ ├── Sultans of Swing.mp3
│ ├── report.pdf
│ ├── charts.pdf
│ ├── VacationPic.png
│ ├── CKEditor.zip
│ ├── Cats.jpg
│ ├── archive.7z
После:
Downloads
│ ├── Music
│ │ └── 21 Guns.mp3
│ │ ├── Sultans of Swing.mp3
| |
│ ├── Documents
│ │ └── project.docx
│ │ └── report.pdf
│ │ ├── charts.pdf
│ ├── Archives
│ │ └── CKEditor.zip
│ │ └── archive.7z
│ ├── Pictures
│ │ └── VacationPic.png
│ │ └── Cats.jpg
Инструмент создания виртуального рабочего окружения. Изменения описаны по ссылке https://allmychanges.com/p/python/virtualenv/#14.0.1. Скачать можно по ссылке: http://pypi.python.org/pypi/virtualenv/
Утилита позволяющая измерить процент покрытия тестами. Изменения описаны по ссылке https://allmychanges.com/p/python/coverage/#4.1b2. Скачать можно по ссылке: http://pypi.python.org/pypi/coverage/
Sunflower — двухпанельный файловый менеджер, написанный на python с использованием тулкита GTK. Программа изначально спроектирована вокруг плагинной архитектуры и поддерживает пользовательские плагины. Разработка Sunflower нацелена на сочетание мощности и простоты использования, а также интеграцию в Gnome и другие рабочие окружения.
Простая библиотека для просмотра веб-страниц без веб-браузера.. Изменения описаны по ссылке https://allmychanges.com/p/python/robobrowser/#0.5.3. Скачать можно по ссылке: http://badge.fury.io/py/robobrowser
Утилита для управления модулями в Python. Изменения описаны по ссылке https://allmychanges.com/p/python/pip/#8.0.2. Скачать можно по ссылке: http://pypi.python.org/pypi/pip/
Приложение для поддержки тегов в Django. Приложение будет крайне полезно на сайте с новостями, которые необходимо помечать тегами, так же можно легко реализовать сортировку по тегам.. Изменения описаны по ссылке https://allmychanges.com/p/python/django-taggit/#0.18.0. Скачать можно по ссылке: https://pypi.python.org/pypi/django-taggit/
Распределенная очередь задач. Изменения описаны по ссылке https://allmychanges.com/p/python/celery/#3.1. Скачать можно по ссылке: http://pypi.python.org/pypi/celery/
Модуль для работы с многомерными массивами. Изменения описаны по ссылке https://allmychanges.com/p/python/numpy/#1.12.0. Скачать можно по ссылке: http://pypi.python.org/pypi/numpy/
Best Shift-Left Testing Tools to Improve Your QA
htmy: Async, Pure-Python Rendering Engine
statsmodels: Statistical Modeling and Econometrics in Python
markitdown: Convert Files and Office Documents to Markdown
Talk Python to Me: #490: Django Ninja
SVG-виджеты для tcl/tk. Финальный аккорд. Часть IV
Implementing Approximate Nearest Neighbor Search with KD-Trees
Пишем свой PyTorch на NumPy. Часть 1
Царство грибов. Симуляция мицелия на p5py. Битвы гифов. Часть первая
django-liveconfigs - управление настройками в django
Мэтчинг персонажей. Level Hard
Стратификация: как не облажаться с A/B тестами