Технологические заметки
10 subscribers
30 photos
1 video
20 links
Пишу блог для себя.
Основной контент: парсинги, автоматизация и аналитика.
Стек технологий: Python, VBA и пр.
Download Telegram
Всем привет! 🖖

Веду канал в Дзен. В нем делюсь накопленным опытом работы в ИТ.

В телеграмме публикую короткие посты о python.

#########
Рубрики
#########

#ТаковПуть - о python
#ЧистыйКот - о чистом коддинге
#ВДзене - про статьи в Дзене
#ЗаЧаем - прочая информация

Дополнительные хештеги
#########
👍1
#ВДзене

Друзья, хочу коротко поделиться мыслями о статьях в Дзене


# 1 Работа с конфигами

Идея появилась, когда читал статью про конфиг на TOML и там в основном классе конфига был указан путь до файла с конфигом, посчитал, что это не секьюрно. Плюс в статье не было раскрыто как работать с несколькими конфигами.

#python #SecretStr #config #TOML #pydantic #typing


# 2 Запуск скриптов на разных версиях python

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

#python #venv #shebang

# 3 Telegram Bot прогноза погоды

Я не нашел в интернете статью по работе с Яндекс API. Даже на Яндекс Практикуме бот сделан на Open Weather API

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


#python #pyTelegramBotAPI #TelegramBot #YandexAPI
#ЗаЧаем

Друзья, к вашему вниманию анонс.

Я решил изменить подачу материала.

Посты о статьях в Дзене я переместил в отдельный пост выше.

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

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

Каждая статья будет иметь материал в GitLab.

Появились новые рубрики для постов в телеграмм:


#ЧистыйКот
Короткие посты о чистом коде, хотя сразу скажу, у меня свой взгляд на чистый код на Python. Он точно отличается от того, что декларируют разработчики Python.

#ТаковПуть
Короткие посты об интересных, а местами удивительных моментах в языке Python.

#ЗаЧаем
Анонсы и разговоры на отвлеченные темы
👍1
#ТаковПуть

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

Обычно Python устанавливают с официального сайта:
https://www.python.org

Однако с GitHub возможно не только скачать последнюю версию Python, но и получить доступ к версиям, которые ещё не были включены в официальные дистрибутивы. Это может быть полезно для тестирования новых функций и собственных сборок!

git clone https://github.com/python/cpython
cd cpython
👍1
#ЧистыйКот

Простота и ясность

Код должен быть написан так, чтобы через год после его создания не возник вопрос:

«Да что тут вообще происходит?»


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

Читаемый код улучшает качество, упрощает поддержку и делает совместную работу эффективнее.
👍1
#ТаковПуть

GIL (Global Interpreter Lock)


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

GIL гарантирует, что только один поток может выполнять байт-код Python в любой момент времени.

В Python 3.13 появилась экспериментальная возможность отключить GIL. И ожидается, что в версии 3.14 сборка без GIL станет стандартом.

Из моего опыта, собирать Python с отключенным GIL на Linux занимает меньше времени, чем на Windows.
#ТаковПуть

Продолжаем обсуждать GIL


В Python 3.13 появилась возможность не только отключить GIL при сборке из исходников, что может оказаться для многих сложным, но для нашего с вами удобства при установке Python 3.13 появилась опция, которая позволяет установить два интерпретатора на компьютер: с GIL и без него. (см. скриншот)

На примере ниже видно, на сколько Python быстрее без GIL (python3.13t). На скриншоте результат.

from threading import Thread
from time import time


def count(n):
while n > 0:
n -= 1

def run_threads():
args = (10**8,)
thread1 = Thread(target=count, args=args)
thread2 = Thread(target=count, args=args)
thread1.start()
thread2.start()
thread1.join()
thread2.join()

def main():
start_time = time()
run_threads()
finish = time() - start_time
print(f"Время выполнения: {finish:.2f} сек")


if __name__ == "__main__":
main()
1