Уведомления

Группа в Telegram: @pythonsu

#1 Май 2, 2013 10:00:07

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

Твик (модификацыя) пакета

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

Офлайн

#2 Май 2, 2013 13:31:13

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Твик (модификацыя) пакета

Если это функция, метод или класс, которые возможно заменить целиком своей реализацией, то можно воспользоваться monkey-patching'ом.

Например, есть библиотека requests и в ней нужно заменить Session на свою:

import requests
from requests import Session as OriginalSession
 
class MySession(OriginalSession):
    # ...
requests.Session = requests.sessions.Session = MySession
Возможно, придется заменять в нескольких местах, как в примере выше.

Офлайн

#3 Май 2, 2013 22:13:51

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

Твик (модификацыя) пакета

А если это функция не используется в экземпляре класса, а предназначена для внутренних каких то действий?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version