Библиотека для работы с системным хранилищем учетных данных (Keychain, KWallet, Secret Service). Позволяет безопасно хранить и получать пароли, используя механизмы защиты ОС.
Устраняет необходимость хранения паролей в конфигах или коде, используя защищенные системные хранилища.
Установка библиотеки:
pip install keyring
Пример использования:
import keyring
# Сохранение
keyring.set_password("my_app", "username", "secret123")
# Получение
password = keyring.get_password("my_app", "username")
Кроссплатформенная работа с нативными хранилищами (Windows Credential Locker, macOS Keychain, Linux Secret Service) без привязки к конкретной ОС.
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2👀2
Автоматически создаёт чистую и современную документацию из docstring и аннотаций типов Python. Альтернатива Sphinx с фокусом на простоту и читаемость.
Превращает docstring и type hints в интерактивную документацию без сложных конфигов.
Установка библиотеки:
pip install pdoc
Пример использования:
# Генерация документации для модуля
pdoc ./my_module --output-dir ./docs
Поддержка type hints и математических формул в Markdown из коробки.
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👀2❤1😁1
x, data, temp — идеально! Пусть коллеги ломают голову, что делает этот код:
def f(a, b):
return sum(i for i in range(a * 2) if b else a - b
Чем больше действий в одном выражении — тем лучше:
result = [x if x % 2 else (y // 2 if y > 10 else None) for x, y in zip(data1, data2) if x or y]
Меняйте типы на ходу и управляйте состоянием отовсюду:
value = "42"
value = int(value) # Теперь число!
value = [value] * 3 # А теперь список!
Без комментариев и с опасными конструкциями:
if user.role == "XYZ_LEVEL_42":
eval(f"delete_user({user.id})") # Ничего не может пойти не так!
Отступы? Пробелы? Не, не слышали:
def foo():return 42
if True:print("Да")
else: print("Нет")
Никогда не удаляйте старый код. И вот этот шедевр с Stack Overflow тоже оставьте:
def calculate(x):
# Кто-то на форуме сказал, что это работает...
return (lambda y: y**2 + 1)(x) if x > 0 else 0
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1