草庐IT

python - 猴子修补 pandas 和 matplotlib 以删除 df.plot() 的刺

问题:我试图掌握monkeypatching的概念并同时制作一个功能来制作完美的时间序列图。如何在pandas中包含以下matplotlib功能pandas.DataFrame.plot()?ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['bottom'].set_visible(False)ax.spines['left'].set_visible(False)问题末尾的完整代码详情:我认为df.plot()中的默认设置非常简洁,特别是如果您运行的JupyterNot

python - 如何猴子修补静态方法?

这个问题在这里已经有了答案:PointerstostaticmethodsinPython(3个答案)关闭9年前。虽然将实例方法猴子补丁到类相当简单,例如classA(object):passdefa(self):print"a"A.a=a用另一个类的@staticmethodlaclassB(object):@staticmethoddefb():print"staticb"A.b=B.bA.b()产生一个TypeError:unboundmethodb()mustbecalledwithAinstanceasfirstargument(gotnothinginstead)

python - 如何猴子修补 `__call__` 方法?

我似乎无法修补类实例的__call__方法(是的,我只想修补单个实例,而不是所有实例)。以下代码:classA(object):deftest(self):return"TEST"def__call__(self):return"EXAMPLE"a=A()print("callmethod:{0}".format(a.__call__))print("testmethod:{0}".format(a.test))a.__call__=lambda:"example"a.test=lambda:"test"print("callmethod:{0}".format(a.__call__)

python - gunicorn gevent worker 修补了哪些功能?

我正在使用gunicorn运行一些flask和django应用程序,使用geventworker,有一些问题...首先,我假设因为gunicornfork并实例化我的进程,它会猴子修补标准模块,我不必自己调用monkey.patch_all,它已经为我完成,并且每个请求都作为greenlet运行,对吗?其次,这是重要的部分,gunicorn-gevent真的给猴子修补了哪些功能?当您使用gevent时,您始终可以选择要修补的功能(套接字、补丁、urllib)...所以,问题是,这些特性中的哪些是真的得到了gunicorn-gevent的猴子补丁?我如何更改此列表?例如,对monkey.

python - 模拟和猴子修补有什么区别?

我使用python,对测试有点陌生。我经常看到用本地方法替换外部依赖的测试,如下所示:importsome_moduledefget_file_data():return"hereisthepretendfiledata"some_module.get_file_data=get_file_data#proceedtotest我看到这在question中被称为“猴子补丁”.我还看到“模拟”一词经常与“猴子修补”一起使用,或者在看起来非常相似的场景中使用。这两个概念有什么区别吗? 最佳答案 Monkeypatching在运行时用另一个

python - 使用模拟来修补不存在的属性

我正在尝试测试一个上下文管理器,它使用一个类,该类使用一些__getattr__魔法来解析类中实际上不存在的几个属性。我遇到了一个问题,在尝试修补类时mock引发了AttributeError。我要修补的对象的简化示例。classMyClass(object):def__getattr__(self,attr):ifattr=='myfunc':returnlambda:returnNoneraiseAttributeError('error')classMyContextManager(object):def__init__(self):super(MyContextManager,

python - 用于数据库驱动程序的Gevent/Eventlet猴子修补

在完成Gevent/Eventlet猴子修补之后-我可以假设每当DB驱动程序(例如redis-py,pymongo)通过标准库(例如socket)使用IO时,它将是异步的吗?因此,使用eventlet猴子补丁足以实现例如:eventis应用程序中的redis-pynonblocking吗?据我所知,如果我关心连接的使用就足够了(例如,为每个greenlet使用不同的连接)。但我想确定。如果您知道还需要什么,或者如何在Gevent/Eventlet中正确使用数据库驱动程序,请同时输入。 最佳答案 如果满足以下所有条件,则可以假定将对其

python - 在 Python 3 中使用 unittest.mock 修补 input()

如何使用@patch装饰器来修补内置的input()函数?例如,我想测试question.py中的一个函数,它包含对input()的调用:defquery_yes_no(question,default="yes"):"""Adaptedfromhttp://stackoverflow.com/questions/3041986/python-command-line-yes-no-input"""valid={"yes":True,"y":True,"ye":True,"no":False,"n":False}ifdefaultisNone:prompt="[y/n]"elifdef

python - 如何修补对象中的属性

问题是如何在with语句中修补实例的属性。我尝试了以下不起作用的示例。它像评论中一样打印。frommockimportpatch,PropertyMockclassFoo(object):f={'a':1}new_foo=Foo()withpatch.object(new_foo,'f',new_callable=PropertyMock)asmock:mock.return_value={'b':2}printnew_foo.f# 最佳答案 documentation中有一个示例.您需要将类提供给patch.object,而不是实

python - 如何在未模拟的类中使用 autospec 修补类方法?

我想断言Python类中的一个类方法使用一组特定的参数调用另一个类方法。我希望模拟的类方法是“规范的”,因此它会检测是否使用错误数量的参数调用它。当我使用patch.object(..,autospec=True,..)修补类方法时,类方法被替换为NonCallableMagicMock并在以下情况下引发错误我尝试调用它。frommockimportpatchclassA(object):@classmethoddefapi_meth(cls):returncls._internal_classmethod(1,2,3)@classmethoddef_internal_classmet