- Регистрация
- 9 Май 2015
- Сообщения
- 1,071
- Баллы
- 155
- Возраст
- 52
Если вы интересуетесь жизнью Open Source сообщества и хотите к нему присоединиться, то придётся вам как нельзя кстати, ведь в ней собраны лучшие проекты с открытым исходным кодом. В четвертой части серии вы найдёте самые интересные Open Source проекты на Python.
Python
— библиотека для численных расчётов с использованием графов потока данных. Вершины графа — это математические операции, а рёбра — многомерные массивы данных (тензоры). Гибкость такой архитектуры позволяет использовать один и тот же код на разных системах.
— это простой способ генерировать тестовые данные (dummy data) для различных целей. Elizabeth использует основанное на JSON хранилище данных и зависит только от стандартной библиотеки. Есть возможность генерировать данные 18 разных типов: связанные с едой, людьми, аппаратным обеспечением, перевозками, адресами и т.д.
Пример использования:
>>> from elizabeth import Personal
>>> p = Personal('en')
>>>
>>> p.full_name(gender='female')
'Antonetta Garrison'
>>> p.blood_type()
'O-'
>>> p.occupation()
'Programmer'
При запросе данных можно указать язык или страну, и данные будут соответствовать запросу. Пока что поддерживается 20 языков, русский в том числе.
Пример интеграции с Flask:
— это платформа для реализации обучающих алгоритмов HTM. В частности, используется для распознавания аномалий и предсказания.
Поддержка: Python 2
— это микрофреймворк, основанный на Werkzeug и Jinja2.
— это высокоуровневый фреймворк для веб-разработки.
— это маленькая библиотека, предоставляющая RegEx-шаблоны. Пригодится, если лень писать регулярки самому.
Примеры:
import re
import expynent.patterns as expas
if re.match(expas.ZIP_CODE['RU'], '43134'):
print('match')
else:
print('not match')
# Output: 'not match'
from expynent.compiled import username
u = input('Enter username: ')
if username.match(u):
print('valid')
else:
print('invalid')
— это платформа для измерения «ума» ИИ и его обучения на большой коллекции игр, сайтов и приложений.
Поддержка: Python 2/3
— библиотека, позволяющая задавать, оптимизировать и вычислять математические выражения с многомерными массивами. Для расчётов можно использовать GPU.
Поддержка: Python 2/3
— интерактивный HTTP-клиент в командной строке.
Поддержка: Python 2/3
— высокопроизводительный фреймворк для создания облачных API.
Поддержка: Python 2/3
— фреймворк для создания настраиваемых RESTful веб-сервисов.
Поддержка: Python 2/3
— интерактивная библиотека для создания графиков.
Поддержка: Python 2/3
— лёгкая библиотека для валидации данных.
Поддержка: Python 2/3
>>> v = Validator({'name': {'type': 'string'}})
>>> v.validate({'name': 'john doe'})
True
— клиент Твиттера для терминала. Обширный функционал.i
Поддержка: Python 2/3
— прекрасное приложение, которое исправляет вашу последнюю команду в консоли.
Поддержка: Python 2/3
— интерфейс командной строки для Postgres с автодополнением и подсветкой синтаксиса.
Поддержка: Python 2/3
— интерфейс командной строки для MySQL с автодополнением и подсветкой синтаксиса.
— работа с временем никогда не была такой простой.
Поддержка: Python 2/3
Пример:
>>> import pendulum
>>> now_in_paris = pendulum.now('Europe/Paris')
>>> now_in_paris
'2016-07-04T00:49:58.502116+02:00'
# Seamless timezone switching
>>> now_in_paris.in_timezone('UTC')
'2016-07-03T22:49:58.502116+00:00'
>>> tomorrow = pendulum.now().add(days=1)
>>> last_week = pendulum.now().subtract(weeks=1)
>>> if pendulum.now().is_weekend():
... print('Party!')
'Party!'
>>> past = pendulum.now().subtract(minutes=2)
>>> past.diff_for_humans()
>>> '2 minutes ago'
>>> delta = past - last_week
>>> delta.hours
23
>>> delta.in_words(locale='en')
'6 days 23 hours 58 minutes'
# Proper handling of datetime normalization
>>> pendulum.create(2013, 3, 31, 2, 30, 0, 0, 'Europe/Paris')
'2013-03-31T03:30:00+02:00' # 2:30 does not exist (Skipped time)
# Proper handling of dst transitions
>>> just_before = pendulum.create(2013, 3, 31, 1, 59, 59, 999999, 'Europe/Paris')
'2013-03-31T01:59:59.999999+01:00'
>>> just_before.add(microseconds=1)
'2013-03-31T03:00:00+02:00'
— библиотека для создания мощных интерактивных инструментов для командной строки и терминала.
Поддержка: Python 2/3
— интерактивная платформа для исследования данных.
Поддержка: Python 2/3
— это пакет, предоставляющий быстрые и гибкие структуры данных для работы с различными видами данных.
— пакет для работы с астрономией и астрофизикой.
Поддержка: Python 2/3
— HTTP-клиент в командной строке, цель которого — сделать работу с веб-сервисами максимально дружественной.
Поддержка: Python 2/3
— инструмент для создания и запуска мультиконтейнерных Docker-приложений.
Поддержка: Python 2/3
— библиотека нейронных сетей, способна работать с TensorFlow и Theano.
— библиотека для интерактивной визуализации данных в современных браузерах.
Поддержка: Python 2/3
— это простая, но мощная библиотека для создания сырых SQL-запросов к большинству РСУБД.
Поддержка: Python 2/3
Пример:
import records
db = records.Database('postgres://...')
rows = db.query('select * from active_users')
>>> rows[0]
<Record {"username": "model-t", "active": true, "name": "Henry Ford", "user_email": "model-t@gmail.com", "timezone": "2016-02-06 22:28:23.894202"}>
предоставляет унифицированный интерфейс командной строки для статического анализа и исправления кода, написанного на любом языке программирования.
Поддержка: Python 2/3
— это Python 3.5+ веб-сервер, похожий на Flask. Поддерживает асинхронную обработку запросов.
Поддержка: Python 3.5+
Пример:
from sanic import Sanic
from sanic.response import json
app = Sanic()
@app.route("/")
async def test(request):
return json({"hello": "world"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
— это простой инструмент для нагрузочного тестирования сайтов и не только.
Поддержка: Python 2/3
— фреймворк, упрощающий написание небольших тестов.
Поддержка: Python 2/3
Пример:
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
— это быстрая замена asyncio. Написана на Cython, использует libuv.
Поддержка: Python 2/3
— расширяемый набор инструментов для отладки с пользовательским интерфейсом. Поддерживает LLDB, GDB, VDB и WinDbg.
Поддержка: Python 2/3
Вот так выглядит интерфейс автора проекта:
Каждая команда отладчика может быть выделена отдельно:
Больше скриншотов можно найти .
— библиотека для работы со временем.
Поддержка: Python 3
>>> now = maya.now()
<MayaDT epoch=1481850660.9>
>>> tomorrow = maya.when('tomorrow')
<MayaDT epoch=1481919067.23>
>>> tomorrow.slang_date()
'tomorrow'
>>> tomorrow.slang_time()
'23 hours from now'
>>> tomorrow.iso8601()
'2016-12-16T15:11:30.263350Z'
>>> tomorrow.rfc2822()
'Fri, 16 Dec 2016 20:11:30 -0000'
>>> tomorrow.datetime()
datetime.datetime(2016, 12, 16, 15, 11, 30, 263350, tzinfo=<UTC>)
# Automatically parse datetime strings and generate naive datetimes.
>>> scraped = '2016-12-16 18:23:45.423992+00:00'
>>> maya.parse(scraped).datetime(to_timezone='US/Eastern', naive=True)
datetime.datetime(2016, 12, 16, 13, 23, 45, 423992)
>>> rand_day = maya.when('2011-02-07', timezone='US/Eastern')
<MayaDT epoch=1297036800.0>
# Note how this is the 6th, not the 7th.
>>> rand_day.day
6
# Always.
>>> rand_day.timezone
UTC
— это платформа для мониторинга инфраструктуры.
Поддержка: Python 2/3
— это кроссплатформенный инструмент для мониторинга системы.
— инструмент для упрощения написания API.
— это инструмент для настройки шифрования веб-сервера.
— программа для работы с календарём.
— утилита, записывающая терминальные сессии.
. Python HTTP Requests for Humans™
Инструмент для упрощения работы с HTTP-запросами. Является одним из самых скачиваемых Python-пакетов.
Пример:
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'disk_usage': 368627, u'private_gists': 484, ...}
предназначен для настройки почтовых серверов.
— это библиотека для валидации структур данных.
Пример:
>>> from schema import Schema, And, Use, Optional
>>> schema = Schema([{'name': And(str, len),
... 'age': And(Use(int), lambda n: 18 <= n <= 99),
... Optional('sex'): And(str, Use(str.lower),
... lambda s: s in ('male', 'female'))}])
>>> data = [{'name': 'Sue', 'age': '28', 'sex': 'FEMALE'},
... {'name': 'Sam', 'age': '42'},
... {'name': 'Sacha', 'age': '20', 'sex': 'Male'}]
>>> validated = schema.validate(data)
>>> assert validated == [{'name': 'Sue', 'age': 28, 'sex': 'female'},
... {'name': 'Sam', 'age': 42},
... {'name': 'Sacha', 'age' : 20, 'sex': 'male'}]
— это инструмент для автоматизации тестирования на проникновение.
— это приложение для выполнения математических, научных и инженерных расчётов. Очень богатый функционал.
— это библиотека для символьной математики.
— это библиотека для работы с двумерными графиками, которую можно использовать в скриптах, оболочках, на серверах веб-приложений и т.д.
— это кроссплатформенный фреймворк для создания интерфейсов, поддерживающих multi-touch.
— прогресс-бар для Python и командной строки.
— это инструмент для проверки вашего Python-кода на соответствие конвенциям PEP8.
Пример:
$ pycodestyle --first optparse.py
optparse.py:69:11: E401 multiple imports on one line
optparse.py:77:1: E302 expected 2 blank lines, found 1
optparse.py:88:5: E301 expected 1 blank line, found 0
optparse.py:222:34: W602 deprecated form of raising exception
optparse.py:347:31: E211 whitespace before '('
optparse.py:357:17: E201 whitespace after '{'
optparse.py:472:29: E221 multiple spaces before operator
optparse.py:544:21: W601 .has_key() is deprecated, use 'in'
— сменит активное окно, если начальник поблизости.
Пример:
Начальник встал. Он приближается.
Когда он достаточно близко, производится снимок лица и распознавание.
Если начальник распознан, активное окно изменяется.
— IDE для анализа данных.
Запись впервые появилась .
Python
— библиотека для численных расчётов с использованием графов потока данных. Вершины графа — это математические операции, а рёбра — многомерные массивы данных (тензоры). Гибкость такой архитектуры позволяет использовать один и тот же код на разных системах.

— это простой способ генерировать тестовые данные (dummy data) для различных целей. Elizabeth использует основанное на JSON хранилище данных и зависит только от стандартной библиотеки. Есть возможность генерировать данные 18 разных типов: связанные с едой, людьми, аппаратным обеспечением, перевозками, адресами и т.д.

Пример использования:
>>> from elizabeth import Personal
>>> p = Personal('en')
>>>
>>> p.full_name(gender='female')
'Antonetta Garrison'
>>> p.blood_type()
'O-'
>>> p.occupation()
'Programmer'
При запросе данных можно указать язык или страну, и данные будут соответствовать запросу. Пока что поддерживается 20 языков, русский в том числе.
Пример интеграции с Flask:

— это экспериментальный проект, целью которого является облегчение работы с пакетами. Он объединяет Pipfile, pip и virtualenv.

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

— это микрофреймворк, основанный на Werkzeug и Jinja2.

— это высокоуровневый фреймворк для веб-разработки.

— это маленькая библиотека, предоставляющая RegEx-шаблоны. Пригодится, если лень писать регулярки самому.

Примеры:
import re
import expynent.patterns as expas
if re.match(expas.ZIP_CODE['RU'], '43134'):
print('match')
else:
print('not match')
# Output: 'not match'
from expynent.compiled import username
u = input('Enter username: ')
if username.match(u):
print('valid')
else:
print('invalid')
— это платформа для измерения «ума» ИИ и его обучения на большой коллекции игр, сайтов и приложений.
Поддержка: Python 2/3

— библиотека, позволяющая задавать, оптимизировать и вычислять математические выражения с многомерными массивами. Для расчётов можно использовать GPU.
Поддержка: Python 2/3

— интерактивный HTTP-клиент в командной строке.
Поддержка: Python 2/3

— высокопроизводительный фреймворк для создания облачных API.
Поддержка: Python 2/3

— фреймворк для создания настраиваемых RESTful веб-сервисов.
Поддержка: Python 2/3
— интерактивная библиотека для создания графиков.
Поддержка: Python 2/3

— лёгкая библиотека для валидации данных.
Поддержка: Python 2/3
>>> v = Validator({'name': {'type': 'string'}})
>>> v.validate({'name': 'john doe'})
True
— клиент Твиттера для терминала. Обширный функционал.i
Поддержка: Python 2/3

— прекрасное приложение, которое исправляет вашу последнюю команду в консоли.
Поддержка: Python 2/3

— интерфейс командной строки для Postgres с автодополнением и подсветкой синтаксиса.
Поддержка: Python 2/3

— интерфейс командной строки для MySQL с автодополнением и подсветкой синтаксиса.

— работа с временем никогда не была такой простой.
Поддержка: Python 2/3
Пример:
>>> import pendulum
>>> now_in_paris = pendulum.now('Europe/Paris')
>>> now_in_paris
'2016-07-04T00:49:58.502116+02:00'
# Seamless timezone switching
>>> now_in_paris.in_timezone('UTC')
'2016-07-03T22:49:58.502116+00:00'
>>> tomorrow = pendulum.now().add(days=1)
>>> last_week = pendulum.now().subtract(weeks=1)
>>> if pendulum.now().is_weekend():
... print('Party!')
'Party!'
>>> past = pendulum.now().subtract(minutes=2)
>>> past.diff_for_humans()
>>> '2 minutes ago'
>>> delta = past - last_week
>>> delta.hours
23
>>> delta.in_words(locale='en')
'6 days 23 hours 58 minutes'
# Proper handling of datetime normalization
>>> pendulum.create(2013, 3, 31, 2, 30, 0, 0, 'Europe/Paris')
'2013-03-31T03:30:00+02:00' # 2:30 does not exist (Skipped time)
# Proper handling of dst transitions
>>> just_before = pendulum.create(2013, 3, 31, 1, 59, 59, 999999, 'Europe/Paris')
'2013-03-31T01:59:59.999999+01:00'
>>> just_before.add(microseconds=1)
'2013-03-31T03:00:00+02:00'
— библиотека для создания мощных интерактивных инструментов для командной строки и терминала.
Поддержка: Python 2/3

— интерактивная платформа для исследования данных.
Поддержка: Python 2/3

— это пакет, предоставляющий быстрые и гибкие структуры данных для работы с различными видами данных.

— пакет для работы с астрономией и астрофизикой.
Поддержка: Python 2/3

— HTTP-клиент в командной строке, цель которого — сделать работу с веб-сервисами максимально дружественной.
Поддержка: Python 2/3

— инструмент для создания и запуска мультиконтейнерных Docker-приложений.
Поддержка: Python 2/3

— библиотека нейронных сетей, способна работать с TensorFlow и Theano.

— библиотека для интерактивной визуализации данных в современных браузерах.
Поддержка: Python 2/3

— это простая, но мощная библиотека для создания сырых SQL-запросов к большинству РСУБД.
Поддержка: Python 2/3
Пример:
import records
db = records.Database('postgres://...')
rows = db.query('select * from active_users')
>>> rows[0]
<Record {"username": "model-t", "active": true, "name": "Henry Ford", "user_email": "model-t@gmail.com", "timezone": "2016-02-06 22:28:23.894202"}>
предоставляет унифицированный интерфейс командной строки для статического анализа и исправления кода, написанного на любом языке программирования.
Поддержка: Python 2/3

— это Python 3.5+ веб-сервер, похожий на Flask. Поддерживает асинхронную обработку запросов.
Поддержка: Python 3.5+
Пример:
from sanic import Sanic
from sanic.response import json
app = Sanic()
@app.route("/")
async def test(request):
return json({"hello": "world"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
— это простой инструмент для нагрузочного тестирования сайтов и не только.
Поддержка: Python 2/3
— фреймворк, упрощающий написание небольших тестов.
Поддержка: Python 2/3
Пример:
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5

— это быстрая замена asyncio. Написана на Cython, использует libuv.
Поддержка: Python 2/3

— расширяемый набор инструментов для отладки с пользовательским интерфейсом. Поддерживает LLDB, GDB, VDB и WinDbg.
Поддержка: Python 2/3
Вот так выглядит интерфейс автора проекта:

Каждая команда отладчика может быть выделена отдельно:

Больше скриншотов можно найти .
— библиотека для работы со временем.
Поддержка: Python 3
>>> now = maya.now()
<MayaDT epoch=1481850660.9>
>>> tomorrow = maya.when('tomorrow')
<MayaDT epoch=1481919067.23>
>>> tomorrow.slang_date()
'tomorrow'
>>> tomorrow.slang_time()
'23 hours from now'
>>> tomorrow.iso8601()
'2016-12-16T15:11:30.263350Z'
>>> tomorrow.rfc2822()
'Fri, 16 Dec 2016 20:11:30 -0000'
>>> tomorrow.datetime()
datetime.datetime(2016, 12, 16, 15, 11, 30, 263350, tzinfo=<UTC>)
# Automatically parse datetime strings and generate naive datetimes.
>>> scraped = '2016-12-16 18:23:45.423992+00:00'
>>> maya.parse(scraped).datetime(to_timezone='US/Eastern', naive=True)
datetime.datetime(2016, 12, 16, 13, 23, 45, 423992)
>>> rand_day = maya.when('2011-02-07', timezone='US/Eastern')
<MayaDT epoch=1297036800.0>
# Note how this is the 6th, not the 7th.
>>> rand_day.day
6
# Always.
>>> rand_day.timezone
UTC
— это платформа для мониторинга инфраструктуры.
Поддержка: Python 2/3


— это кроссплатформенный инструмент для мониторинга системы.

— инструмент для упрощения написания API.

— это инструмент для настройки шифрования веб-сервера.
— программа для работы с календарём.

— утилита, записывающая терминальные сессии.

. Python HTTP Requests for Humans™
Инструмент для упрощения работы с HTTP-запросами. Является одним из самых скачиваемых Python-пакетов.
Пример:
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'disk_usage': 368627, u'private_gists': 484, ...}

предназначен для настройки почтовых серверов.
— это библиотека для валидации структур данных.
Пример:
>>> from schema import Schema, And, Use, Optional
>>> schema = Schema([{'name': And(str, len),
... 'age': And(Use(int), lambda n: 18 <= n <= 99),
... Optional('sex'): And(str, Use(str.lower),
... lambda s: s in ('male', 'female'))}])
>>> data = [{'name': 'Sue', 'age': '28', 'sex': 'FEMALE'},
... {'name': 'Sam', 'age': '42'},
... {'name': 'Sacha', 'age': '20', 'sex': 'Male'}]
>>> validated = schema.validate(data)
>>> assert validated == [{'name': 'Sue', 'age': 28, 'sex': 'female'},
... {'name': 'Sam', 'age': 42},
... {'name': 'Sacha', 'age' : 20, 'sex': 'male'}]
— это инструмент для автоматизации тестирования на проникновение.

— это приложение для выполнения математических, научных и инженерных расчётов. Очень богатый функционал.
— это библиотека для символьной математики.

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

— прогресс-бар для Python и командной строки.

— это инструмент для проверки вашего Python-кода на соответствие конвенциям PEP8.
Пример:
$ pycodestyle --first optparse.py
optparse.py:69:11: E401 multiple imports on one line
optparse.py:77:1: E302 expected 2 blank lines, found 1
optparse.py:88:5: E301 expected 1 blank line, found 0
optparse.py:222:34: W602 deprecated form of raising exception
optparse.py:347:31: E211 whitespace before '('
optparse.py:357:17: E201 whitespace after '{'
optparse.py:472:29: E221 multiple spaces before operator
optparse.py:544:21: W601 .has_key() is deprecated, use 'in'
— сменит активное окно, если начальник поблизости.
Пример:
Начальник встал. Он приближается.

Когда он достаточно близко, производится снимок лица и распознавание.

Если начальник распознан, активное окно изменяется.

— IDE для анализа данных.

Запись впервые появилась .