Telegram Web Link
🐍 На работу python разработчиком сложно попасть без резюме.

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

🤖 @avatar_resume_bot
Паттерн проектирования Singleton

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

Метод __new__ вызывается для создания экземпляра класса, перед вызовом __init__. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).

В примере мы проверяем, есть ли значение у атрибута instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.

То есть при вызове конструктора класса Singleton, будет возвращаться один и тот же объект из памяти.

#классы #паттерны
Приглашаем на Pytup — круглый стол о Python 3.12

Пока все постепенно начинают думать о Новом годе, мы готовим для вас новый Pytup, чтобы поговорить про наш любимый язык программирования. Тема этого круглого стола — Python 3.12 в проде.

На Pytup мы соберём разработчиков, которым есть что сказать про Python 3.12 и которые могут поделиться первыми впечатлениями от новой версии. Стоит ли переходить на 3.12, что в новой версии реализовано плохо, а что — хорошо и вообще в ту ли сторону развивается язык. Обсудим эти и другие вопросы, вместе поразмышляем над перспективами Python, а ещё поболтаем о жизни, отдохнём и просто хорошо проведём время.

Pytup пройдёт 16 декабря в Москве, можно прийти офлайн или посмотреть онлайн-трансляцию.

Зарегистрироваться можно здесь.
Работа с PDF файлами используя PyPDF2

В этом посте, вы узнаете, как работать с PDF-файлами в Python. PyPDF2 предоставляет функциональность для работы с PDF-файлами в Python, позволяя автоматизировать процессы обработки и анализа документов в формате PDF.

Пример кода:

import PyPDF2

with open('example.pdf', 'rb') as file:

pdf_reader = PyPDF2.PdfReader(file)

num_pages = len(pdf_reader.pages)
print(f"Количество страниц в PDF: {num_pages}")

first_page_text = pdf_reader.pages[0].extract_text()
print("Текст с первой страницы:")
print(first_page_text)

pdf_writer = PyPDF2.PdfWriter()

pdf_writer.add_page(pdf_reader.pages[0])

with open('new_document.pdf', 'wb') as new_file:
pdf_writer.write(new_file)

print("Обработка PDF завершена.")


В этом примере мы открываем PDF-файл, используя PyPDF2, извлекаем информацию о количестве страниц и тексте с первой страницы. Затем мы создаем новый PDF-файл, добавляем в него первую страницу и сохраняем его под именем "new_document.pdf".

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

#python #pypdf2
Хеширование в Python используя hashlib

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

Пример кода:
import hashlib

# Пример хеширования строки с использованием SHA-256
data_to_hash = "Hello, World!"
hashed_data = hashlib.sha256(data_to_hash.encode()).hexdigest()

print(f"Исходные данные: {data_to_hash}")
print(f"Хеш-сумма (SHA-256): {hashed_data}")
В этом примере мы используем алгоритм SHA-256 из библиотеки hashlib для создания хеш-суммы строки "Hello, World!". Результат выводится в шестнадцатеричном формате.

Библиотека hashlib является одним из лучших инструментов для обеспечения безопасности данных в Python. Путем использования различных алгоритмов хеширования, таких как MD5, SHA-256 и других, вы можете обеспечить целостность данных и повысить уровень безопасности ваших приложений.

#python #hashlib
🌐 Копирование веб-содержимого в Python с библиотекой pywebcopy

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

Пример кода:

from pywebcopy import save_webpage

url = 'https://www.example.com'

target_folder = 'path/to/folder'

save_webpage(url, target_folder)


В данном примере используется функция save_webpage для копирования веб-содержимого указанной веб-страницы (url) в указанную целевую папку (target_folder).

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

#python #pywebcopy
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа с YAML-Файлами в Python с Помощью Библиотеки PyYAML

PyYAML позволяет эффективно работать с файлами в формате YAML (YAML Ain't Markup Language), который широко используется для конфигураций, настроек и обмена данными в структурированной форме.

import yaml

data_to_write = {'name': 'John Doe', 'age': 30, 'city': 'Example City'}
with open('example.yaml', 'w') as file:
yaml.dump(data_to_write, file, default_flow_style=False)

with open('example.yaml', 'r') as file:
loaded_data = yaml.safe_load(file)
print(f"Загруженные данные: {loaded_data}")


Результат (файл example.yaml):
age: 30
city: Example City
name: John Doe

В этом примере мы используем PyYAML для записи словаря data_to_write в файл example.yaml и затем загружаем данные из этого файла обратно в переменную loaded_data.

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

#python #yaml #pyyaml
Please open Telegram to view this post
VIEW IN TELEGRAM
Все сервисы Норникеля для работников, собранные в суперапе «Суперника» — нашли отклик в сердцах работников, ведь приложение уже используют 40 тысяч человек из 22 городов России.

Приложение оказалось крайне полезным, потому что у 75% сотрудников нет ПК на рабочем месте. Суперап доступен на любом мобильном устройстве, а также в десктоп-версии с любого компьютера. В личном кабинете можно узнать информацию об отпуске, стаже работы. Есть возможность настроить новостную ленту, получить доступ к документам и справкам, узнать о корпоративных мероприятиях и оставить отклик. Также можно общаться между собой в чатах на звонках и видеосвязи.

В основе «Суперники» микросервисная архитектура. Для быстрой и бесшовной работы приложения потребовалось разработать, согласовать, прописать и настроить 3500 правил. Все сервисы работают независимо друг от друга, а это более тысячи различных соединений.
Создание скриншотов с использованием модуля pyscreenshot

Модуль pyscreenshot, обеспечивая кросс-платформенную функциональность, позволяет легко создавать скриншоты как всего экрана, так и его отдельных частей. Для работы этого модуля необходимо установить библиотеку Pillow.

Для захвата изображения используется метод grab, для его отображения – show, а для сохранения – save. В метод grab можно также передать аргумент bbox, чтобы ограничить захват только определенной областью экрана.

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

#python #pyscreenshot
Получение геолокации по IP с использованием ip2geotools

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

from ip2geotools.databases.noncommercial import DbIpCity

def get_ip_geolocation(ip_address):
try:
response = DbIpCity.get(ip_address, api_key='free')
city = response.city
region = response.region
country = response.country
latitude = response.latitude
longitude = response.longitude

print(f"Информация о местоположении для IP {ip_address}:")
print(f"Город: {city}")
print(f"Регион: {region}")
print(f"Страна: {country}")
print(f"Широта: {latitude}")
print(f"Долгота: {longitude}")

except Exception as e:
print(f"Ошибка при получении информации по IP {ip_address}: {e}")

ip_address_to_check = '8.8.8.8'
get_ip_geolocation(ip_address_to_check)


Этот код использует метод get из класса DbIpCity для получения информации о местоположении по заданному IP-адресу. Помните о том, что для использования некоторых баз данных может потребоваться API-ключ.

#python #ip2geotools
GigaCode теперь доступен внешним разработчикам

К сервису GigaCode, персональному AI-ассистенту разработчика — открыт ранний доступ. Он поможет в режиме реального времени по фрагменту кода сгенерировать наиболее вероятные его продолжения непосредственно в среде разработки.

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

Код поддерживает более 15 языков программирования (Java, Python, JavaScript, TypeScript, C/C++ и другие), а также совместимо со множеством популярных редакторов и интегрированных сред разработки (IDEA, PyCharm, VSCode, Jupyter и другие). Среди остальных функций сервиса: расширенная кодогенерация, семантический поиск по коду, поиск некоторых типов уязвимостей и многое другое.
Настройка ширины текста с использованием модуля textwrap

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

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

# Исходный текст
original_text = "Мощные функции модуля textwrap обеспечивают красивое форматирование текста, а функция fill позволяет задать ширину текста в символах."

# Задаем ширину текста в 30 символов
width = 30

# Применяем функцию fill для форматирования текста
formatted_text = textwrap.fill(original_text, width)

print(formatted_text)


Результат выполнения кода будет следующим:
Мощные функции модуля
textwrap обеспечивают
красивое форматирование
текста, а функция fill
позволяет задать ширину
текста в символах.


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

#python #textwrap
Придаем человеческий вид данным с помощью пакета humanize

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

Например, сложный объект timedelta может быть преобразован в "2 дня, 1 час и 33.12 секунд".

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

Пример использования в Python:
import humanize
from datetime import timedelta

time_difference = timedelta(days=2, hours=1, seconds=33.12)
humanized_time = humanize.naturaldelta(time_difference)
print(humanized_time)
# Output: 2 days, 1 hour and 33.12 seconds

number_to_humanize = 500
humanized_number = humanize.intword(number_to_humanize)
print(humanized_number)
# Output: 5.00 x 10²


В данном примере мы используем функции naturaldelta и intword из пакета humanize для получения читаемых представлений временного интервала и числа соответственно.

#python #humanize
2024/09/27 11:26:34
Back to Top
HTML Embed Code: