Telegram Group & Telegram Channel
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python-лайфхак для профи: “Перехват любого импорта” с помощью import hooks

Хотите логировать или модифицировать поведение импортируемых модулей?
Используйте механизм sys.meta_path и свои кастомные import hooks!

Зачем это нужно:
• Автоматический патчинг сторонних библиотек
• Логирование импорта для аудита или отладки
• Подмена модулей “на лету” для тестирования или “горячих фиксов”

Пример — ловим каждый импорт и выводим имя модуля:


import sys

class ImportLoggerFinder:
def find_spec(self, fullname, path, target=None):
print(f'Импортируется: {fullname}')
return None # Не вмешиваемся, просто логируем

sys.meta_path.insert(0, ImportLoggerFinder())

# Теперь при любом импорте будет выводиться имя загружаемого модуля


import json
import math
import requests

# Вы увидите:
# Импортируется: json
# Импортируется: math
# Импортируется: requests


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

Сохрани себе, чтобы не потерять 😎
Please open Telegram to view this post
VIEW IN TELEGRAM



group-telegram.com/data_math/787
Create:
Last Update:

🖥 Python-лайфхак для профи: “Перехват любого импорта” с помощью import hooks

Хотите логировать или модифицировать поведение импортируемых модулей?
Используйте механизм sys.meta_path и свои кастомные import hooks!

Зачем это нужно:
• Автоматический патчинг сторонних библиотек
• Логирование импорта для аудита или отладки
• Подмена модулей “на лету” для тестирования или “горячих фиксов”

Пример — ловим каждый импорт и выводим имя модуля:


import sys

class ImportLoggerFinder:
def find_spec(self, fullname, path, target=None):
print(f'Импортируется: {fullname}')
return None # Не вмешиваемся, просто логируем

sys.meta_path.insert(0, ImportLoggerFinder())

# Теперь при любом импорте будет выводиться имя загружаемого модуля


import json
import math
import requests

# Вы увидите:
# Импортируется: json
# Импортируется: math
# Импортируется: requests


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

Сохрани себе, чтобы не потерять 😎

BY Математика Дата саентиста


Share with your friend now:
group-telegram.com/data_math/787

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Telegram Messenger Blocks Navalny Bot During Russian Election "He has kind of an old-school cyber-libertarian world view where technology is there to set you free," Maréchal said. "Russians are really disconnected from the reality of what happening to their country," Andrey said. "So Telegram has become essential for understanding what's going on to the Russian-speaking world." "The argument from Telegram is, 'You should trust us because we tell you that we're trustworthy,'" Maréchal said. "It's really in the eye of the beholder whether that's something you want to buy into." False news often spreads via public groups, or chats, with potentially fatal effects.
from sg


Telegram Математика Дата саентиста
FROM American