Falcon
В этом примере создается
🔗 Python tricks
Falcon
— это быстрый и минималистичный веб-фреймворк, предназначенный для создания надежных бэкэнд приложений и микросервисов. Он отлично работает как с asyncio (ASGI), так и с gevent/meinheld (WSGI). Falcon
используется такими компаниями, как LinkedIn, PayPal, Wargaming и другими, чтобы обеспечить работу критически важных сервисов.В этом примере создается
QuoteResource
, который обрабатывает GET-запросы. При получении GET-запроса на маршрут /quote
возвращается словарь с информацией об авторе и цитате. Затем этот ресурс добавляется в приложение Falcon
с помощью метода add_route
.🔗 Python tricks
CherryPy
В этом примере создается класс
Результатом работы этого кода будет то, что при отправке GET-запроса на корневой маршрут (/) сервер вернет строку
“Hello World!”.
🔗 Python tricks
CherryPy
— это минималистический веб-фреймворк, который предоставляет удобный интерфейс к протоколу HTTP для разработчиков Python и позволяет создавать веб-приложения так же, как в традиционных объектно-ориентированных программах на Python.В этом примере создается класс
HelloWorld
с методом index
. Этот метод декорирован с помощью cherrypy.expose
, что означает, что он будет доступен как обработчик HTTP-запросов. Затем запускается веб-сервер CherryPy
с помощью метода cherrypy.quickstart
и передачи ему экземпляра класса HelloWorld
.Результатом работы этого кода будет то, что при отправке GET-запроса на корневой маршрут (/) сервер вернет строку
“Hello World!”.
🔗 Python tricks
wxPython
В этом примере мы создаем два основных объекта в
🔗 Python tricks
wxPython
— это кроссплатформенная обертка библиотек графического интерфейса пользователя, основанная на wxWidgets
и написанная на языке программирования C++. Она является одной из альтернатив Tkinter
, которая поставляется вместе с Python.В этом примере мы создаем два основных объекта в
wxPython
: основной объект окна и объект приложения. Затем управление передается обработчику событий (вызовом функции MainLoop()
), который отвечает за интерактивную часть программы.🔗 Python tricks
Расскажите, что такое асинхронный код
Асинхронный код — это подход к написанию кода, который позволяет выполнять несколько задач одновременно в рамках одного процесса. Это достигается за счет использования асинхронных функций и корутин. В отличие от синхронного кода, который выполняет каждую задачу последовательно, асинхронный код может запустить несколько задач «параллельно» и организовать их выполнение с помощью итераций и вызовов коллбеков.
🔗 Python tricks
Асинхронный код — это подход к написанию кода, который позволяет выполнять несколько задач одновременно в рамках одного процесса. Это достигается за счет использования асинхронных функций и корутин. В отличие от синхронного кода, который выполняет каждую задачу последовательно, асинхронный код может запустить несколько задач «параллельно» и организовать их выполнение с помощью итераций и вызовов коллбеков.
🔗 Python tricks
Создаем графики в терминале
Например, вы можете использовать
🔗 Python tricks
Bashplotlib
— это библиотека Python и инструмент командной строки для создания базовых графиков в терминале. Это быстрый способ визуализации данных, когда у вас нет GUI. Она написана на чистом Python и может быть быстро установлена в любом месте с помощью pip.Например, вы можете использовать
Bashplotlib
для создания гистограммы из массива данных. В этом примере функция plot_hist
используется для отображения данных на одномерной гистограмме.🔗 Python tricks
__missing__
Метод
Этот метод может быть полезен при решении различных задач, например, при подсчете элементов или при работе со словарями, где отсутствующие ключи должны иметь определенное значение по умолчанию.
В этом примере мы создаем экземпляр класса
🔗 Python tricks
Метод
__missing__
определяет поведение подкласса словаря при доступе к несуществующему ключу. Более конкретно, внутренний метод словаря __getitem__
вызывает метод __missing__
, если ключ не существует.Этот метод может быть полезен при решении различных задач, например, при подсчете элементов или при работе со словарями, где отсутствующие ключи должны иметь определенное значение по умолчанию.
В этом примере мы создаем экземпляр класса
DefaultDict
с значением по умолчанию 'default
'. Когда мы пытаемся получить доступ к несуществующему ключу 'key
', вызывается метод __missing__
, который возвращает значение по умолчанию.🔗 Python tricks
doctest
Модуль
Модуль
В этом примере мы определяем функцию
При запуске кода вы увидите подробный вывод о том, какие doctest’ы были выполнены и какие результаты они вернули.
🔗 Python tricks
Модуль
doctest
позволяет проверять интерактивные примеры кода Python, встроенные в документацию. Этот модуль ищет фрагменты текста, которые выглядят как интерактивные сеансы Python, и затем выполняет эти сеансы, чтобы убедиться, что они работают точно так же, как показано.Модуль
doctest
может быть полезен при написании документации для пакета или модуля, а также при написании тестов для проверки корректности работы кода.В этом примере мы определяем функцию
square
, которая возвращает квадрат числа x
. В докстринге функции мы включаем несколько интерактивных примеров использования функции. Затем мы импортируем модуль doctest
и вызываем метод testmod
, который автоматически находит и проверяет все doctest’ы в текущем модуле.При запуске кода вы увидите подробный вывод о том, какие doctest’ы были выполнены и какие результаты они вернули.
🔗 Python tricks
Что такое синхронный код
Синхронный код — это код, который выполняется последовательно, один за другим, и блокирует выполнение других задач до его завершения. Это означает, что если у вас есть функция, которая занимает много времени на выполнение, и вы вызываете ее в основной программе, то выполнение программы заблокируется до завершения этой функции.
🔗 Python tricks
Синхронный код — это код, который выполняется последовательно, один за другим, и блокирует выполнение других задач до его завершения. Это означает, что если у вас есть функция, которая занимает много времени на выполнение, и вы вызываете ее в основной программе, то выполнение программы заблокируется до завершения этой функции.
🔗 Python tricks
Почему иногда Python так долго запускается в Windows
Запуск Python может занимать длительное время на компьютерах с операционной системой Windows по нескольким причинам. Вот некоторые из них:
Перезагрузка компьютера может занять длительное время и затормозить работу Python;
Некоторые антивирусные программы и брандмауэры могут занимать ресурсы и замедлять выполнение команд в Python;
Операционная система Windows может использовать много ресурсов, когда запускаются приложения, и это может сказаться на производительности Python;
Зависимости и модули Python, которые используются в приложении, могут занимать много времени на импорт и загрузку;
Неэффективный код Python может приводить к значительным задержкам и замедлениям;
Другие приложения, работающие на компьютере, могут занимать много времени на выполнение задач и затруднять работу Python;
🔗 Python tricks
Запуск Python может занимать длительное время на компьютерах с операционной системой Windows по нескольким причинам. Вот некоторые из них:
Перезагрузка компьютера может занять длительное время и затормозить работу Python;
Некоторые антивирусные программы и брандмауэры могут занимать ресурсы и замедлять выполнение команд в Python;
Операционная система Windows может использовать много ресурсов, когда запускаются приложения, и это может сказаться на производительности Python;
Зависимости и модули Python, которые используются в приложении, могут занимать много времени на импорт и загрузку;
Неэффективный код Python может приводить к значительным задержкам и замедлениям;
Другие приложения, работающие на компьютере, могут занимать много времени на выполнение задач и затруднять работу Python;
🔗 Python tricks
Twisted
Фреймворк включает в себя следующие модули:
В этом примере мы создаем класс
Затем мы создаем класс
Наконец, мы используем реактор
🔗 Python tricks
Twisted
— это асинхронный фреймворк, написанный на Python. Это мощное средство для быстрой разработки сетевых (и не только) сервисов. Он разработан с использованием паттерна проектирования Reactor. Фреймворк включает в себя следующие модули:
twisted.web
; twisted.conch
; twisted.words
; twisted.mail
; twisted.positioning
; twisted.names
; twisted.trial
.В этом примере мы создаем класс
Echo
, который переопределяет метод dataReceived
. Этот метод вызывается каждый раз, когда сервер получает данные от клиента.Затем мы создаем класс
EchoFactory
, который переопределяет метод buildProtocol
. Этот метод вызывается каждый раз, когда сервер принимает новое соединение.Наконец, мы используем реактор
Twisted
для прослушивания входящих соединений на порту 1234 и запускаем реактор. Когда клиент подключается к серверу и отправляет данные, сервер отправляет эти данные обратно клиенту.🔗 Python tricks
Pyro4
Это библиотека, которая позволяет вам создавать приложения, в которых объекты могут общаться друг с другом через сеть с минимальными усилиями по программированию.
Он разработан таким образом, чтобы быть очень простым в использовании и, как правило, не мешать вам. Но он также предоставляет набор мощных функций, которые позволяют вам быстро и без усилий создавать распределенные приложения.
В этом примере мы используем
🔗 Python tricks
Это библиотека, которая позволяет вам создавать приложения, в которых объекты могут общаться друг с другом через сеть с минимальными усилиями по программированию.
Он разработан таким образом, чтобы быть очень простым в использовании и, как правило, не мешать вам. Но он также предоставляет набор мощных функций, которые позволяют вам быстро и без усилий создавать распределенные приложения.
В этом примере мы используем
Pyro4
для создания распределенного приложения, в котором объекты могут общаться друг с другом через сеть. Мы создаем удаленный объект GreetingMaker
, который имеет метод get_fortune
, который возвращает случайное приветствие. Затем запускаем сервер Pyro4
, который предоставляет доступ к этому объекту через сеть.🔗 Python tricks
Prophet
В этом примере мы загружаем данные о пассажирах авиакомпании, подготавливаем их для использования в модели
Результат работы этого кода — график с прогнозом количества пассажиров авиакомпании на будущий период. Визуализация также показывает компоненты прогноза: тренд, сезонность и праздники.
🔗 Python tricks
Prophet
— это библиотека прогнозирования временных рядов с открытым исходным кодом, разработанная командой Facebook. Она доступна как для Python, так и для R. Prophet
предназначен для создания высококачественных прогнозов для принятия решений, не требуя от пользователя экспертных знаний по прогнозированию временных рядов.В этом примере мы загружаем данные о пассажирах авиакомпании, подготавливаем их для использования в модели
Prophet
, создаем и обучаем модель, создаем будущие даты для прогнозирования, делаем прогноз и визуализируем его.Результат работы этого кода — график с прогнозом количества пассажиров авиакомпании на будущий период. Визуализация также показывает компоненты прогноза: тренд, сезонность и праздники.
🔗 Python tricks
Eve
В этом примере мы импортируем класс
В результате — запущенный веб-сервер с RESTful API, который можно использовать для обмена данными между клиентом и сервером.
*REST API — это API, построенный с учетом ограничений REST. Это означает, что REST API использует HTTP-методы (
🔗 Python tricks
Eve
— это фреймворк для создания REST API на языке Python с открытым исходным кодом. Он позволяет легко создавать и развертывать высоко настраиваемые, полнофункциональные RESTful веб-сервисы. Eve
предлагает встроенную поддержку для MongoDB
и SQL-бэкендов через расширения сообщества. В этом примере мы импортируем класс
Eve
из модуля eve
, создаем экземпляр приложения Eve
и запускаем его. Теперь API активен и готов к использованию.В результате — запущенный веб-сервер с RESTful API, который можно использовать для обмена данными между клиентом и сервером.
*REST API — это API, построенный с учетом ограничений REST. Это означает, что REST API использует HTTP-методы (
GET
, POST
, PUT
, DELETE
и т. д.) для выполнения операций над ресурсами (данными), представленными в виде URI (Uniform Resource Identifier).🔗 Python tricks
Как работать с транзитивными зависимостями
Для работы с транзитивными зависимостями можно использовать систему управления зависимостями, например, pipenv, poetry или pip. Эти системы позволяют устанавливать зависимости и их транзитивные зависимости, а также контролировать версии зависимостей.
🔗 Python tricks
Для работы с транзитивными зависимостями можно использовать систему управления зависимостями, например, pipenv, poetry или pip. Эти системы позволяют устанавливать зависимости и их транзитивные зависимости, а также контролировать версии зависимостей.
🔗 Python tricks
Annoy
В этом примере мы создаем индекс
Результат работы кода - список из 1000 индексов элементов, которые являются ближайшими соседями для элемента с индексом 0.
🔗 Python tricks
Annoy
(Approximate Nearest Neighbors Oh Yeah) — это библиотека, которая используется для поиска точек в пространстве, близких к заданной точке запроса. Она также создает большие файловые структуры данных только для чтения, которые отображаются в память, чтобы многие процессы могли использовать одни и те же данные.В этом примере мы создаем индекс
Annoy
с длиной вектора элемента f
и используем расстояние angular
. Затем мы добавляем 1000 элементов со случайными значениями в индекс и строим его с использованием 10 деревьев. После этого мы сохраняем индекс в файл test.ann
. Затем мы загружаем индекс из файла и выполняем поиск 1000 ближайших соседей для элемента с индексом 0.Результат работы кода - список из 1000 индексов элементов, которые являются ближайшими соседями для элемента с индексом 0.
🔗 Python tricks
Auto-sklearn
В этом примере мы создаем экземпляр классификатора
Результат работы кода — массив предсказанных меток классов для тестовых данных
🔗 Python tricks
Auto-sklearn
— это автоматизированный инструмент машинного обучения и замена для оценщика scikit-learn
. Он предназначен для автоматического обнаружения хорошо работающих моделей для задач прогнозного моделирования с минимальным участием пользователя.В этом примере мы создаем экземпляр классификатора
AutoSklearnClassifier
и обучаем его на тренировочных данных X_train
и y_train
. Затем мы используем обученный классификатор для предсказания меток классов для тестовых данных X_test
.Результат работы кода — массив предсказанных меток классов для тестовых данных
X_test
.🔗 Python tricks
VisPy
В этом примере мы создаем данные для точечного графика с
Результат работы кода - отображение окна с интерактивным точечным графиком.
🔗 Python tricks
VisPy
— это высокопроизводительная интерактивная библиотека визуализации данных 2D/3D. VisPy
использует вычислительную мощность современных графических процессоров через библиотеку OpenGL
для отображения очень больших наборов данных. VisPy
способна создавать высококачественные интерактивные научные графики с миллионами точек.В этом примере мы создаем данные для точечного графика с
N
точками и цветами. Затем мы создаем канвас и добавляем на него точечный график с помощью класса Markers
. Наконец, мы запускаем приложение с помощью app.run()
.Результат работы кода - отображение окна с интерактивным точечным графиком.
🔗 Python tricks
Объясните, что такое monkey patching и приведите пример
Monkey patching — это техника изменения поведения кода во время выполнения путем динамической замены или добавления методов или атрибутов в существующем объекте. Эта техника может быть полезна в том случае, когда изменения не могут быть внесены в существующий код, и требует минимальных изменений в существующем коде.
🔗 Python tricks
Monkey patching — это техника изменения поведения кода во время выполнения путем динамической замены или добавления методов или атрибутов в существующем объекте. Эта техника может быть полезна в том случае, когда изменения не могут быть внесены в существующий код, и требует минимальных изменений в существующем коде.
🔗 Python tricks
dict.items
Метод items() возвращает объект представления, который отображает список пар кортежей словаря (ключ, значение). Если список обновляется в любое время, изменения отражаются на самом объекте представления, как показано в приведенном выше примере.
🔗 Python tricks
Метод items() возвращает объект представления, который отображает список пар кортежей словаря (ключ, значение). Если список обновляется в любое время, изменения отражаются на самом объекте представления, как показано в приведенном выше примере.
🔗 Python tricks
Dask
В этом примере мы создаем массив
Результат работы кода - массив
🔗 Python tricks
Dask
— это гибкая библиотека для параллельных вычислений. Dask
состоит из двух частей: динамического планирования задач, оптимизированного для вычислений, и коллекций "больших данных", таких как параллельные массивы, фреймы данных и списки, которые расширяют общие интерфейсы, такие как NumPy
, Pandas
или итераторы Python, до сред больше памяти или распределенных сред.В этом примере мы создаем массив
Dask
x
размером 10000x10000 с чанками размером 1000x1000. Затем мы выполняем несколько операций над массивом x
, включая транспонирование, срез и вычисление среднего значения. Наконец, мы вызываем метод compute()
для вычисления результата.Результат работы кода - массив
NumPy
со средними значениями по строкам для каждой второй строки в срезе y[::2, 5000:]
.🔗 Python tricks