Kangaroo
2.28K subscribers
112 photos
61 files
433 links
Kangaroo — о программировании и технологиях.

Python, серверная разработка, инфраструктура, ИИ и собственные проекты. Статьи, технические разборы, эксперименты и наблюдения из практики.

Иногда — математика и котики :)

По всем вопросам: @Lodhel
Download Telegram
Как создавать и распаковывать Zip-архивы в Python

https://morioh.com/p/7f0a7fbc1de3
"Метаклассы – это магия, о которой 99% пользователей не стоит даже задумываться. Если вам интересно, нужны ли они вам – тогда точно нет. Люди, которым они на самом деле нужны, знают, зачем, и что с ними делать."

~ Гуру Python Tim Peters
В ежегодном исследовании State of the Octoverse 2019 от GithHub Python обогнал Java и вышел на второе место по популярности среди языков программирования.

https://github.blog/2019-11-06-the-state-of-the-octoverse-2019/
Написал вторую часть(сколько таких частей ожидается сказать трудно) мини курса по Django , пока что самые азы, для тех кто с django еще не работал, постепенно буду раскрывать весь потенциал фреймворка, от легкого к сложному

https://zen.yandex.ru/media/id/5cbb4adabc785500b3b6b47b/django-tutorial-part-2-nachalo-sozdanie-proekta-i-prilojeniia-5dd807f3710eb34d51c32e60
This media is not supported in your browser
VIEW IN TELEGRAM
Python считается одним из самых популярных языков для создания веб-сервисов. За его плечами как скорые, небрежные RESTful API, так и полноценные веб-приложения, обслуживающие миллионы пользователей. Работающие в данной сфере наверняка уже использовали некоторые популярные фреймворки для создания сайта — Django, Flask, Falcon, Tornado или CherryPy.

За последние пару лет появилось довольно много неплохих фреймворков, и создается впечатление, что ветеранам скоро придется подвинуться. Новые веб-фреймворки используют свежий подход к решению проблем, делая акцент на производительности и выразительности API. Рассмотрим 11 новых веб-фреймворков Python, на которые вам стоит обратить внимание.

Sanic позиционирует себя как веб-сервер и веб-фреймворк, созданный для быстрого запуска. Он позволяет использовать синтаксис async/await, добавленный в Python 3.5. По этой причине код не блокируется и отличается скоростью выполнения. Sanic использует uvloop и ujson, когда нужно помочь с производительностью, однако данные пакеты являются опциональными.

Starlette является легким фреймворком ASGI, что идеален для создания высокопроизводительных сервисов asyncio. Он может использоваться как самостоятельный фреймворк, так и как инструментарий ASGI. Поставляется вкупе с обширным ассортиментом инструментов, поддерживает WebSockets, GraphQL, внутрипроцессовые фоновые задачи, а также текстовый клиент, построенный на Requests Python.

Masonite является веб-фреймворком Python, сконцетрированном на разработке. Он стремится соответствовать подходу «все включено». Это отличный инструментарий программиста с огромным количеством функционала и чрезвычайно растяжимой архитектурой.

FastAPI является современным, высокопроизводительным веб-фреймворком для создания API на Python 3.6+ основанный на подсказки типов Python. Создан поверх Starlette и является одним из самых быстрых и доступных фреймворков Python.

FastAPI базируется, а также является совместимым, с открытыми стандартами для API — OpenAPI (ранее известный как Swagger) и JSON Schema.

Responder также основан на Starlette. При создании Responder главной идеей было совместить лучшие аспекты Flask и Falcon внутри одного-единcтвенного фреймворка.

У него есть встроенный статический сервер для продакшена, автоматические gzip-ответы, нативная поддержка GraphQL и встроенный клиент для тестов, использующий модуль Requests.

Molten является минималистичным, расширяемым, быстрым и производительным фреймворком для создания HTTP API на Python. Molten автоматически проверяет запросы на соответствие с предопределенными схемами, гарантируя, что обработчики будут запускаться только при наличии правильного ввода.

Japronto является быстрым, масштабируемым, асинхронным HTTP инструментарием для Python 3.5+, интегрированным с конвейерным HTTP-сервером, базирующимся на uvloop и picohttpparser.

Он предназначен тех, кому важна скорость, внимательность к деталям и новые разработки. На данный момент нет особых новостей касательно разработки Japronto, однако о том, что проект заброшен, создатели также не сообщали.

Klein — это микро-фреймворк для разработки веб-сервисов на Python. Klein отличается минималистичным API, что похож на Bottle и Flask. Стоит отметить, что он зависим от дополнительных инструментов вне стандартной библиотеки.

Причина в том, что Klein создан на широко используемых и хорошо протестированных компонентах, таких как Werkzeug и Twisted.

Quart является Python ASGI веб-микрофреймворком. Он предназначен для того чтобы предоставить самый простой способ использования асинхронных функций в веб-контексте, особенно с уже существующими приложениями Flask.

Это становится возможным, благодаря тому, что Quart API является супер-набором для API Flask. Quart позиционирует себя в качестве полноценного веб-микрофреймворком. Он поддерживает HTTP/1.1, HTTP/2 и вебсокеты.

BlackShepp является асинхронным веб-фреймворком для создания веб-приложений Python, которые не блокируются и в основе которых лежат события. Вдохновлен Flask и ASP.NET Core.
BlackSheep поддерживает автоматическую связку значений с обработчиками запросов, задействуя аннотации типа или конвенции. Он также поддерживает внедрение зависимостей и имплементацию стратегий для обработки аутентификации и авторизации, используя внешние библиотеки.

Cyclone является веб-фреймворком, который реализует Tornado API в виде протокола Twisted. Идея в соединении элегантного и ясного Tornado API с циклами событий Twisted, что позволяет использовать огромное количество поддерживаемых протоколов.

Эта комбинация обеспечивает основу для создания гибридных серверов, способных очень эффективно обрабатывать HTTP, а также одновременно использовать электронную почту, ssh, sip, irc, причем одновременно.
Топ 5 библиотек python разработчика

5. Beautiful Soup
Beautiful Soup - это парсер для синтаксического разбора файлов HTML/XML, написанный на языке программирования Python, который может преобразовать даже неправильную разметку в дерево синтаксического разбора. Он поддерживает простые и естественные способы навигации, поиска и модификации дерева синтаксического разбора. В большинстве случаев он поможет программисту сэкономить часы и дни работы

4. Pillow
Python Imaging Library — библиотека языка Python, предназначенная для работы с растровой графикой. Разработка библиотеки прекращена. Однако проект под названием Pillow, являющийся форком PIL, развивается и включает, в том числе, поддержку Python 3.x

3. SQL Alchemy
SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM. Служит для синхронизации объектов Python и записей реляционной базы данных. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними на языке Python без использования SQL.

2. Simplejson
Simplejson - это быстрый, точный и расширяемый json кодировщик и декодировщик, который поддерживает Python 3.3+ с обратной совместимостью с Python 2.5.
Simplejson написан на Python и не имеет внешних зависимостей. Он также включает расширения, написанные на С для представлений с особо высоким быстродействием. Помимо дефолтной UTF-8, декодер Simplejson может оперировать строками JSON, поступающими в любой кодировке.

1. Requests
Requests - это библиотека Python HTTP, выпущенная под лицензией Apache2. Цель проекта - сделать запросы HTTP проще и удобнее для человека
import bugfeature as 🤖

Как вам такой способ импорта в питоне с использованием эмодзи? Некоторым разработчикам понравилась эта идея и они создали библиотеку pythonji.

При помощи её, можно писать код с использованием смайликов. Например в качестве счетчика лайков указать ❤, а для дизлайков воспользоваться 💩.

Забавно, что расширение у файлов библиотеки - 🐍. Исходники доступны на GitHub (https://github.com/gahjelle/pythonji), а установить её можно командой:

python -m pip install pythonji
После полутора лет разработки вышел Python 3.8

Среди обновлений:
● добавлен новый оператор присваивания :=. Он не заменяет стандартную операцию. С ним можно присваивать значения внутри других выражений, избегая двойного вызова функций в условных операторах и циклах.
● добавлен API для C. Он позволяет настраивать параметры инициализации Python. Это упростит встраивание функциональности Python в приложения на C.
● новый синтаксис для задания аргументов функции. Признак / отделяет аргументы, которым присваивать значения можно только в порядке перечисления, от аргументов, которые поддерживают произвольное присваивание.
● по умолчанию поставлен протокол Pickle 4. Он гораздо производительнее третьей версии и лучше сокращает размер данных.
● новое в модуле typing 3: класс TypedDict для ассоциативных массивов, тип Literal для ограничения параметров и конструкция Final для определения значения функций и переменных, которые нельзя изменять и переназначать.
Новую ветку будут поддерживать ещё полтора года, а доставлять патчи от уязвимостей — до 2024 года. Первое корректирующее обновление выпустят в декабре, остальные — раз в два месяца.
Популярность языков программирования с 1965 года по 2019

https://youtu.be/hg3-IQ5SqMI
Проверка на None

None не является уникальным объектом в Python. Он имеет аналоги, например, null в C-подобных языках.

Можно проверить, ссылается ли переменная на None с помощью операторов сравнения == и !=:


>>> x, y = 2, None
>>> x == None
False
>>> y == None
True
>>> x != None
True
>>> y != None
False

Однако, предпочтительнее использование is и is not:

>>> x is None
False
>>> y is None
True
>>> x is not None
True
>>> y is not None
False

Кроме того, лучше использовать конструкцию x is not None, а не менее читабельную альтернативу (x is None).
@sysodmins_league - Канал, посвященный специалистам сферы ИТ, занимающимся поддержкой сетевой и серверной инфраструктуры, технической поддержкой пользователей, а так же всем тем, кто им сочувствует и понимает.
Здесь вы найдете множество best practice, how-to, новости мира ИТ, литературу и многое другое.