Telegram Web Link
База данных на минималках

Встроенный модуль shelve позволяет сохранять и читать произвольные данные. Таким образом, можно сохранять любые Python объекты для дальнейшего использования.

Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод shelve.open поддерживает протокол контекстного менеджера, то есть можно не вызывать метод close.

В документации заявляют, что такая база данных является "надежной". Но учитывая, что shelve написан на pickle, его стоит использовать только в совсем маленьких проектах.

#shelve
Управления файлами и директориями в Python с библиотекой shutil

Сегодня мы рассмотрим библиотеку shutil, которая предоставляет удобные инструменты для копирования, перемещения, удаления файлов и директорий, а также многие другие операции с файловой системой, используя Python.

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

Примеры использования shutil доступны на фото.

shutil также предоставляет возможность архивировать и разархивировать файлы и директории, переименовывать файлы, а также многое другое.

Библиотека shutil очень полезна для автоматизации рутинных задач, связанных с управлением файлами и директориями.

#python #shutil
Парсинг JSON в Python с библиотекой ujson

Сегодня мы поговорим о библиотеке ujson, которая предоставляет эффективные инструменты для работы с данными в формате JSON в Python.
JSON (JavaScript Object Notation) - это популярный формат для обмена данными между приложениями, и ujson позволяет эффективно парсить JSON-данные и создавать JSON-объекты.

Что такое ujson?
ujson - это модуль Python, который предоставляет более быструю альтернативу стандартному модулю json в стандартной библиотеке Python. Благодаря оптимизациям, ujson может значительно ускорить парсинг и создание JSON-данных.

Преимущества ujson перед обычным json:

1. Скорость: ujson известен своей высокой производительностью, что делает его отличным выбором для приложений, где важна скорость обработки JSON-данных.

2. Легкость использования: Интерфейс библиотеки очень похож на стандартный модуль json, поэтому переключение на ujson не требует больших изменений в коде.

3. Совместимость: ujson совместим с большинством современных версий Python.

4. Эффективность: Парсер ujson создан с акцентом на эффективность и оптимизацию, что позволяет экономить ресурсы при обработке JSON-данных.


P.S. Автор этого поста вдохновился идеей, предложенной одним из наших подписчиков. Если и у вас есть свои предложения, не стесняйтесь делиться ими в комментариях!

#python #ujson #json #библиотеки
Познакомьтесь с IceCream: Улучшенным выводом в Python

Hедавно мы наткнулись на потрясающий инструмент для отладки и разработки в Python, и хотим поделиться им с вами! Представляем вам icecream - библиотеку, которая упрощает отладку, улучшая вывод ваших данных.

Что такое icecream?
icecream - это легковесная библиотека для Python, которая предоставляет простые, но мощные инструменты для отслеживания и вывода значений переменных и данных в процессе выполнения кода. Этот инструмент полезен при отладке, тестировании и разработке, помогая вам лучше понять, что происходит в вашей программе.

Преимущества icecream перед стандартным print:

1. Читабельность и простота в использовании: icecream автоматически выводит имя переменной и ее значение, что делает вывод более понятным и читабельным.

2. Цветовая кодировка: icecream поддерживает цветовую кодировку вывода, что делает его более наглядным и удобным для анализа.

Настройка icecream:
icecream позволяет настраивать вывод, добавлять дополнительную информацию, и даже сохранять логи в файл. Вы можете настроить icecream в соответствии с вашими потребностями, делая вывод более информативным и удобным.

from icecream import ic, install

install(autodetect=True, includeContext=True)

number = 42
ic(number)

text = "Привет, мир!"
ic(text)

Это добавит контекст, такой как имя файла и номер строки, в вывод:

ic| <ipython-input-1-5a0d5d83d2d3>:1 in <module> - number: 42
ic| <ipython-input-1-5a0d5d83d2d3>:4 in <module> - text: 'Привет, мир!'


Автор идеи поста: @hexvel
Если у вас есть предложения для следующего поста, делитесь в комментариях!

#Python #logging #icecream
Красивый вывод таблиц

Недавно нам понадобилось логировать часть базы данных. И тут мы вспомнили про прекрасный модуль prettytable, который позволяет красиво выводить таблицы.

Итак, имена столбцов задается с помощью атрибута table.field_names. А добавлять строки с данными в таблицу можно методом table.add_row([]), передавая туда список элементов.

Но даже если вы не фанат командной строки, то иногда нужно сохранить отчет о работе вашей программы в текстовый файл. В таком случае можно сохранить саму таблицу, вызвав метод table.get_string().

#python #prettytable
Автоматизация мобильных приложений с помощью uiautomator2

Сегодня мы поговорим о библиотеке uiautomator2, которая предоставляет мощные инструменты для автоматизации тестирования и взаимодействия с мобильными приложениями на платформе Android.

Эта библиотека может пригодиться для создания автотестов, скриптов для тестирования пользовательского интерфейса, и многих других задач, связанных с мобильной разработкой.

Что такое uiautomator2?

uiautomator2 - это Python-библиотека, предоставляющая возможность управления устройствами Android и взаимодействия с приложениями на них. Она основана на Google's Android Testing Support Library и является мощным инструментом для автоматизации действий на устройствах Android.

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

#python #uiautomator2 #автоматизация
Введение в машинное обучение с библиотекой Scikit-Learn в Python

Сегодня мы поговорим о машинном обучении и о библиотеке Scikit-Learn , которая является мощным инструментом для создания и обучения моделей машинного обучения в Python. Scikit-Learn предоставляет широкий спектр алгоритмов и инструментов для задач классификации, регрессии, кластеризации, и многих других. Это отличное введение в мир машинного обучения.

Что такое Scikit-Learn?
Scikit-Learn (sklearn) - это библиотека машинного обучения для Python, которая предоставляет простой и единый интерфейс для множества алгоритмов машинного обучения. Она поддерживает задачи как классификации, так и регрессии, а также кластеризации, извлечение признаков, и многое другое. Scikit-Learn также включает в себя множество инструментов для предобработки данных и оценки производительности моделей.

Для чего можно использовать Scikit-Learn?
1. Классификация: Scikit-Learn предоставляет множество алгоритмов классификации, таких как метод опорных векторов (SVM), случайные леса, наивный байесовский классификатор, логистическая регрессия и другие. Эти алгоритмы позволяют решать задачи бинарной и многоклассовой классификации.

2. Регрессия: Scikit-Learn поддерживает регрессию, что позволяет создавать модели для прогнозирования числовых значений. Линейная регрессия, регрессия на основе деревьев, и множество других методов доступны для решения задач регрессии.

3. Кластеризация: Для задач кластеризации, Scikit-Learn предоставляет алгоритмы, такие как K-средних, иерархическая кластеризация, агломеративная кластеризация и многое другое. Эти методы позволяют группировать данные на основе их сходства.

Scikit-Learn предоставляет множество инструментов для выбора, настройки и оценки моделей машинного обучения. Она идеально подходит для начинающих и опытных разработчиков, желающих погрузиться в мир машинного обучения.
Управление базой данных в Python с Alembic и SQLAlchemy

Сегодня мы поговорим о том, как можно эффективно управлять структурой вашей базы данных в Python с использованием библиотек Alembic и SQLAlchemy. Эта связка инструментов позволяет легко мигрировать схему базы данных, управлять версиями и обеспечивает удобный способ разработки и поддержки приложений.

Что такое Alembic и SQLAlchemy?

SQLAlchemy - это мощная библиотека для работы с базами данных в Python. Она предоставляет ORM (Object-Relational Mapping), что делает работу с базой данных более Pythonic. Вы можете определять модели данных, выполнять запросы и манипулировать данными, используя чистый Python.

Alembic - это инструмент для управления миграциями базы данных. Он позволяет создавать и применять миграции для изменения структуры базы данных, такие как создание таблиц, добавление столбцов или изменение индексов.

Пример использования Alembic и SQLAlchemy:

1. Установка библиотек:
pip install sqlalchemy alembic

2. Инициализация Alembic:
alembic init my_migration


3. Определение моделей данных в SQLAlchemy:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)


4. Создание миграции:
alembic revision --autogenerate -m "Create user table"


5. Применение миграции:
alembic upgrade head

Теперь вы можете легко управлять структурой базы данных, создавать новые миграции и применять их, чтобы обновить вашу базу данных.

Полезные ссылки:

- SQLAlchemy: https://www.sqlalchemy.org/
- Alembic: https://alembic.sqlalchemy.org/

#python #sqlalchemy #alembic #базаданных #миграции
Автоматическое форматирование Python кода с помощью Black

Сегодня мы расскажем вам о незаменимом инструменте для поддержания структуры и читаемости вашего Python кода - Black. Black - это автоматический форматтер кода, который помогает вам избавиться от несогласованных стилей и выравнивает ваш код согласно официальным рекомендациям PEP 8.

Что такое Black?

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

Преимущества использования Black:

- Единообразие: Black гарантирует, что ваш код будет соответствовать стандартам PEP 8, что делает его более читаемым и понятным.

- Автоматизация: Black автоматически форматирует код, что позволяет избежать рутинных задач по выравниванию и форматированию.

- Интеграция: Black легко интегрируется в ваш рабочий процесс с помощью популярных инструментов разработки, таких как VSCode, PyCharm и других.

- Кастомизация: Вы можете настроить некоторые параметры Black, чтобы адаптировать его к вашим потребностям.

Как использовать Black?

Для начала, установите Black с помощью pip:

pip install black


Затем, вы можете использовать Black для форматирования вашего кода следующим образом:

black your_python_file.py


Black автоматически примет ваш код и приведет его к согласованному стилю. Вы также можете настроить некоторые аспекты форматирования, чтобы сделать его идеально подходящим для вашего проекта.

#python #Black #форматирование #код #PEP8
Использование внешних процессов в Python с помощью subprocess

В мире программирования бывают моменты, когда необходимо взаимодействовать с внешними программами из кода на Python. Для этих задач отлично подходит модуль subprocess, который предоставляет удобный способ запуска внешних процессов, передачи данных им и получения результатов выполнения.

Что такое subprocess?

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

Пример использования subprocess:

import subprocess

# Простой пример: выполнение команды "ls" в командной строке
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, text=True)

# Вывод результата выполнения команды
print(result.stdout)


В данном примере мы использовали subprocess.run для выполнения команды "ls -l". Параметр stdout=subprocess.PIPE указывает на перенаправление вывода команды в переменную result.stdout. Параметр text=True гарантирует, что вывод будет в текстовом формате.

Передача данных и получение результата:

import subprocess

# Передача данных в команду и получение результата
input_data = "Hello, subprocess!"
result = subprocess.run(['echo', input_data], stdout=subprocess.PIPE, text=True)

# Вывод результата выполнения команды
print(result.stdout)


В данном примере мы использовали команду echo для вывода переданных данных. subprocess.run позволяет передавать данные в команду через параметр input.

subprocess также предоставляет множество других функций для более сложных сценариев взаимодействия с процессами, таких как запуск процесса в фоновом режиме, обработка ошибок, а также потоковый вывод данных.

#python #subprocess
Логирование в Python используя Loguru

Сегодня мы расскажем вам о библиотеке loguru, которая предоставляет простые и эффективные средства для логирования ваших приложений на Python. loguru призвана упростить процесс создания и анализа логов, делая его более интуитивно понятным и гибким.

Что такое loguru?
loguru - это библиотека для логирования в Python, созданная с упором на простоту использования и выразительность. Она предоставляет удобный синтаксис для настройки логирования и поддерживает различные форматы вывода, а также обеспечивает автоматическую ротацию лог-файлов.

Преимущества loguru:
1. Простота использования: loguru предлагает чистый и интуитивно понятный синтаксис для логирования, что упрощает его внедрение в ваши проекты.

2. Гибкость: Вы можете легко настраивать формат вывода, выбирать уровни логирования и добавлять собственные обработчики.

3. Автоматическая ротация: Библиотека автоматически управляет ротацией лог-файлов, предотвращая переполнение дискового пространства.

4. Поддержка различных форматов вывода: loguru поддерживает вывод в различных форматах, включая JSON, CSV, и прочие.

#python #loguru #логирование
Как улучшить управление рисками и ускорить реакцию на кибер-инциденты? Ответ на этот вопрос нашли Норникель и поставщик решений в области информационной безопасности Security Vision.

Компании подписали соглашение о сотрудничестве на SOC-Форуме в Москве, а партнёрство направлено на совместную разработку и тестирование методов защиты от киберугроз.

В рамках сотрудничества компании планируют вместе участвовать в международных киберспортивных соревнованиях, а также разрабатывать образовательные программы для сотрудников информационной безопасности.
Управление зависимостями в Python с Poetry

Сегодня расскажем о мощном инструменте для эффективного управления зависимостями в ваших Python-проектах - Poetry. Poetry представляет собой интуитивно понятный инструмент, который упрощает создание, управление и публикацию пакетов, делая процесс разработки более прозрачным и удобным.

Poetry - это инструмент для управления зависимостями и управления проектами в Python. Он предоставляет удобный способ определения зависимостей, настройки окружения и управления проектом с использованием файла pyproject.toml.

Преимущества использования Poetry:

- Простота: Poetry предоставляет простой и интуитивно понятный способ управления зависимостями, позволяя сосредоточиться на коде, а не на конфигурации.

- Управление версиями: Poetry автоматически создает файлы requirements.txt и Pipfile.lock, обеспечивая точное управление версиями зависимостей.

- Встроенная документация: Интегрированная поддержка документации и команд для упрощения публикации пакетов.

- Интеграция с проектами: Poetry легко интегрируется в процессы разработки и может использоваться вместе с такими инструментами, как VSCode, PyCharm и другими.

Как использовать Poetry?

Для начала работы установите Poetry с помощью следующей команды:
pip install poetry
Инициализируйте новый проект:
poetry new your_project
Добавьте зависимости:
poetry add package_name
И Poetry автоматически обновит ваш файл pyproject.toml и управит зависимостями.

#python #poetry #pyprojecttoml
Управление операционной системой с помощью модуля os в Python

Сегодня давайте поговорим о инструменте для взаимодействия с операционной системой - модуле os. Этот модуль предоставляет широкий спектр функций, позволяющих выполнять операции с файлами, директориями, переменными окружения и многими другими аспектами операционной системы.

Что такое модуль os?

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

Преимущества использования модуля os:

- Кросс-платформенность: Модуль os предоставляет абстракцию для операций, специфичных для операционной системы, что обеспечивает кросс-платформенную совместимость.

- Работа с файлами и директориями: Вы можете легко выполнять операции чтения, записи, удаления файлов, а также управлять структурой директорий.

- Управление процессами: Модуль os позволяет вам взаимодействовать с процессами операционной системы, запускать новые процессы и многое другое.

- Переменные окружения: Вы можете управлять переменными окружения вашего приложения, что полезно при конфигурировании и настройке.

Как использовать модуль os?

Для начала работы с модулем os, вам необходимо просто импортировать его:
import os

Затем вы можете использовать различные функции модуля os в зависимости от ваших потребностей. Например, для получения текущей директории:
current_directory = os.getcwd()
print("Текущая директория:", current_directory)

Модуль os предоставляет множество других функций, таких как os.listdir(), os.mkdir(), os.remove() и многие другие, для выполнения различных операций.

#python #os
Взаимодействие с HTTP с помощью curl_cffi

Что такое curl_cffi?

curl_cffi - это обертка над библиотекой libcurl, предоставляющая Python-разработчикам удобный интерфейс для отправки HTTP-запросов, управления сессиями и обработки ответов.

Плюсы использования curl_cffi:
- Поддерживает подделку отпечатков JA3/TLS и http2.
- Гораздо быстрее, чем requests/httpx, сопоставимо с aiohttp/pycurl.
- Одинаковый синтаксис как и у requests.
- Предварительно скомпилирован, поэтому вам не нужно компилировать его на вашем компьютере.
- Поддерживает asyncio с поворотом прокси для каждого запроса.
- Поддерживает http 2.0, что не предоставляет requests.

Пример использования curl_cffi:

from curl_cffi import Curl

# Создание объекта Curl
curl = Curl()

# Установка URL
curl.setopt(Curl.URL, 'https://api.example.com')

# Выполнение GET-запроса
curl.perform()

# Получение ответа
response = curl.getvalue()

# Вывод результата выполнения запроса
print(response)


В данном примере мы создаем объект Curl, устанавливаем URL и выполняем GET-запрос. Результат запроса сохраняется в переменной response.

Настройка параметров запроса:

from curl_cffi import Curl

# Создание объекта Curl
curl = Curl()

# Установка URL
curl.setopt(Curl.URL, 'https://api.example.com')

# Установка параметров запроса
curl.setopt(Curl.HTTPHEADER, ['Content-Type: application/json'])
curl.setopt(Curl.POSTFIELDS, '{"key": "value"}')

# Выполнение POST-запроса
curl.perform()

# Получение ответа
response = curl.getvalue()

# Вывод результата выполнения запроса
print(response)


В данном примере мы добавляем заголовок и данные для POST-запроса. Метод setopt используется для установки различных параметров запроса.

Модуль curl_cffi обладает богатым функционалом, таким как управление cookie, обработка редиректов, аутентификация, и многое другое.

Надеюсь, что вы найдете модуль curl_cffi полезным в ваших проектах, требующих взаимодействия с внешними серверами по протоколу HTTP. Для более подробной информации ознакомьтесь с документацией.

#python #curl_cffi
Исследование структуры кода с помощью модуля ast

При работе с кодом на Python, иногда возникает необходимость анализа его структуры. Для этого идеально подходит модуль ast (Abstract Syntax Trees), который предоставляет мощные инструменты для работы с абстрактными синтаксическими деревьями.

Что такое ast?

ast - это модуль Python, который позволяет разбирать и анализировать исходный код на Python, представляя его в виде абстрактного синтаксического дерева (AST). AST представляет собой структурированное представление кода, которое легко интерпретировать и анализировать.

Пример использования модуля ast:

import ast

code = "print('Hello, ast!')"
tree = ast.parse(code)

print(ast.dump(tree))


В данном примере мы использовали функцию ast.parse для разбора строки кода с помощью модуля ast. Функция ast.dump выводит структуру AST в удобочитаемом формате.

Анализ структуры кода:

import ast

code = """
def greet(name):
print(f'Hello, {name}!')
"""

tree = ast.parse(code)

for node in ast.walk(tree):
if isinstance(node, ast.FunctionDef):
print(f"Найдена функция: {node.name}")
elif isinstance(node, ast.Print):
print("Обнаружен оператор печати")

В данном примере мы использовали модуль ast для анализа структуры кода. Функция ast.walk позволяет обойти все узлы AST, а затем мы проверяем их типы для выделения определенных элементов, таких как функции или операторы.

Модуль ast также предоставляет возможности для более сложных операций, таких как изменение кода, создание новых выражений и многое другое.

#python #ast #анализкода
Работа с регулярными выражениями используя re

Регулярные выражения (регулярки) являются инструментом для работы с текстовой информацией. Они позволяют осуществлять поиск, извлечение и модификацию текста, используя гибкие шаблоны. Сегодня, мы рассмотрим, как работать с регулярками в Python используя модуль re.

Что такое модуль re?

Модуль re в Python предоставляет функционал для работы с регулярными выражениями. Регулярные выражения (regex) - это шаблоны, описывающие набор символов с определенными свойствами.

В данном примере мы использовали функцию re.search для поиска подстроки в тексте. Параметр re.IGNORECASE делает поиск регистронезависимым.

Модуль re также предоставляет возможности для более сложных операций, таких как замена текста по шаблону, разделение строк на подстроки и многое другое.

Для более подробной информации рекомендуется изучить официальную документацию

#python #regex
Локализация в Python с помощью модуля gettext

В процессе разработки программ иногда необходимо предоставить поддержку разных языков. Модуль gettext в Python предоставляет удобный механизм локализации, который позволяет адаптировать ваше приложение для различных языковых сообществ.

Что такое gettext?
gettext - это модуль Python, предназначенный для обеспечения поддержки интернационализации и локализации. Он позволяет создавать переводы строк на различные языки, обеспечивая легкость адаптации приложения под разные культурные контексты.

Пример использования gettext:
import gettext
from pathlib import Path
translations = gettext.translation('your_app', localedir=Path('locales'), languages=['ru'])
translations.install()
print(_("Hello, gettext!"))

В данном примере мы используем модуль gettext для загрузки файлов перевода из директории 'locales' для русского языка. Функция _() используется для обозначения строк, подлежащих локализации.

Создание файлов перевода:
Для создания файлов перевода можно воспользоваться утилитой pybabel:
pybabel extract -F babel.cfg -o messages.pot your_app
pybabel init -i messages.pot -d locales -l ru


gettext также предоставляет множество возможностей для более сложных сценариев локализации, таких как форматирование чисел, дат и поддержка множественных форм.
#python #gettext #i18n
Работа с форматированием текста

textwrap — это стандартная библиотека, которая спользуется для форматирования текста в тех случаях, когда нам нужна красивая печать.

Он предлагает функциональность аналогичную текстовым редакторам и текстовым процессорам.

Немного о возможностях:

textwrap.fill() — принимает текст и возвращает отформатированный текст, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.

textwrap.dedent() — используется для удаления общего префикса пробела из всех строк в тексте.

textwrap.indent() — используется для добавления текст префикса ко всем строкам в параграфе

#python #textwrap
Типизация в Python с использованием модуля typing

В Python модуль typing предоставляет возможность добавлять подсказки типов для переменных, функций и классов, что делает код более явным и понятным.

Зачем использовать типизацию?

1. Ясность и понятность кода:
Добавление аннотаций типов помогает читателям быстро понять, какие данные ожидаются и какие типы переменных возвращаются из функций.

2. Предотвращение ошибок: Статические анализаторы кода, такие как mypy, могут обнаруживать потенциальные ошибки до выполнения программы, что уменьшает количество багов.

3. Документация кода: Подсказки типов могут служить формой документации, особенно полезной при совместной разработке. Разработчики могут быстро понимать интерфейсы функций и классов.

Пример использования типизации для переменных и функций:
from typing import List, Tuple

def multiply(a: int, b: int) -> int:
return a * b

def process_list(data: List[int]) -> Tuple[int, int]:
sum_values = sum(data)
average = sum_values / len(data)
return sum_values, average

# Пример использования
result1 = multiply(5, 3)# Ожидается int
data_list = [1, 2, 3, 4, 5]
result2 = process_list(data_list)# Ожидается Tuple[int, int]


Здесь a: int и b: int указывают на типы аргументов функции, а -> int и -> Tuple[int, int] - на типы возвращаемых значений. Это помогает читателям кода лучше понимать ожидаемую структуру данных и типы переменных.

Типизация делает ваш код более структурированным, улучшает его читабельность и может служить документацией, облегчая разработку.

#python #typing
2025/02/22 15:43:24
Back to Top
HTML Embed Code: